Задать вопрос
@MaxOmiOm

Чат бот для Telegram который по числовому запросу выдает клиенту файл?

Помогите написать код который будет по числовому запросу выдавать файл.
Перерыл весь русского язычный сегмент не нашел ни одного аналога.
Опыта в написание ботов практически нет.
Проект нужен для детского центра что б отправлять запросы детям на удаленке.
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Devman
    Чат-боты на Python
    2 месяца
    Далее
  • Skillfactory
    Профессия Fullstack-разработчик на Python
    14 месяцев
    Далее
  • AndroidSprint
    Kotlin основы: ИИ-ментор 24/7 + персональный наставник
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
примерно так
# Импорт
import telebot


# Определение бота
bot = telebot.TeleBot("TOKEN", parse_mode="MARKDOWN")
bot.set_webhook()


# Убирание кнопок
none = telebot.types.ReplyKeyboardRemove()



# # # # # # # # # # # # # # # # # # # # # # # # # # #



# команда /start
@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, "Приветственное сообщение. Введите цифру", reply_markup=none)


# обработчик сообщений, кнопок
@bot.message_handler(content_types=['text'])
def handler(message):
    try: num = int(message.text) # пробуем перевести текст сообщения в число
    except: # при неудаче просим ввести еще раз
        bot.send_message(message.chat.id, f"Введите число!", reply_markup=none)
        return
    
    # способ первый:
    files = {
        1: r'path\to.file',
        2: r'path\to\other.file'
    }
    path = files[num] # если юзер ввел 2, то будет открываться файл "path\to\other.file"
    # # # # # # # # # # # #
    # способ второй
    path = f'{num}.txt' # если юзер ввел 5, то будет открываться файл "5.txt"

    bot.send_document(message.chat.id, file=open(path, 'rb'), caption='подпись к файлу')


bot.polling(none_stop=True) # запуск бота
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы