@Askhatbek

Как мне отправить файл через тг бота?

Помогите пожалуйста с ботом, он должен отправлять документы с массива при этом имея интервал (там уже и так есть так что с этим помощь не нужна). Вот сам код:

import telebot
from telebot import types
import time

bot = telebot.TeleBot('1624298351:AAEaXHWkRHp8L67cx7iMq4bB-zT98fesWw4')

documentList = [open('D:\\My files\\Desktop\\telegram\\прайс 16 апрель.xls', 'rb'),
open('D:\\My files\\Desktop\\telegram\\прайс 17 апрель янги.xls', 'rb'),
open('D:\\My files\\Desktop\\telegram\\Драг Промоущн прайс 19 апрель.xls', 'rb'),
open('D:\\My files\\Desktop\\telegram\\прайс 21 апрель янги.xls', 'rb')]

@bot.message_handler(commands=['start'])
def send_welcome(message):
keyboard = types.InlineKeyboardMarkup(row_width=1)
begin_button = types.InlineKeyboardButton(text="Начать", callback_data="test")
keyboard.add(begin_button)
bot.reply_to(message,
f'Отправляю прайсы каждый день, {message.from_user.first_name}. Нажмите "Начать", чтобы начать '
f'отправку прайсов',
reply_markup=keyboard)

@bot.callback_query_handler(content_type=['document'], func=lambda call: True)
def callback_worker(callback):
for i in range(len(documentList)):
bot.send_document(callback.message.chat.id, documentList[i])
time.sleep(5)

bot.polling(none_stop=True)
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
jerwright
@jerwright
while True: coding()
Предлагаю следующий вариант. В массиве будем хранить только директорию.
documentList = ['D:\\My files\\Desktop\\telegram\\прайс 16 апрель.xls',
'D:\\My files\\Desktop\\telegram\\прайс 17 апрель янги.xls',
'D:\\My files\\Desktop\\telegram\\Драг Промоущн прайс 19 апрель.xls',
'D:\\My files\\Desktop\\telegram\\прайс 21 апрель янги.xls']


А функция с отправкой выглядит так:
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(callback):
    for row in documentList:
        bot.send_document(callback.message.chat.id, open(row, 'rb'))
        time.sleep(5)


Передавать в аргументах к @bot.callback_query_handler параметр content_types не нужно, так как он используется в тех случаях, если бот будет реагировать исключительно на этот тип сообщения (может быть текст, файлы, видео и т.д.).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы