@MaxOmiOm

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

Помогите написать код который будет по числовому запросу выдавать файл.
Перерыл весь русского язычный сегмент не нашел ни одного аналога.
Опыта в написание ботов практически нет.
Проект нужен для детского центра что б отправлять запросы детям на удаленке.
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 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) # запуск бота
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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