python-telegram-bot не отправляет документы размером более 1 МБ без каких-либо объяснений или выдачи исключений.есть идеи почему? - PullRequest
0 голосов
/ 04 февраля 2019

Я установил приложение-флягу для обслуживания некоторых PDF-документов и телеграмма-бот, который отправляет запросы в это приложение, чтобы доставить документы для правильных целей.и бот, и веб-приложение работают нормально, как и планировалось.но у меня странная проблема.когда PDF-файлы немного больше 1 МБ, они никогда не достигают места назначения (меньше, чем обычно).Никаких исключений не выдается, и выполнение продолжается как обычно, как если бы команда «bot.send_document» никогда не запускалась.есть идеи, почему?

API Telegram Bot сообщает, что можно отправить любой документ до 50 МБ.но этого не происходит.Попробовав некоторое время, я решил разделить документы на страницы и использовать цикл «for» для отправки постранично, что решает проблему большую часть времени.но если одна из страниц оказывается немного больше, эта страница игнорируется.Поэтому я хотел бы знать, есть ли способ отправить файлы размером до 10 МБ через bot.send_document или какую-либо другую функцию.Вот код для основной функции на боте.В кодексе есть некоторые части на португальском, потому что я бразилец.Я использую POST-запрос для получения файла и GET для имени.

def atual(bot, update):
    telegram_id = update.message.chat_id
    servidor = session.query(Servidores).filter_by(telegram_id = telegram_id).one()
    url_api = 'http://{}:5000/{}/produtividade/atual/'.format(ip, servidor.matricula)
    info = {'telegram_id' : telegram_id, 'p' : 0}
    bot.send_message(chat_id=update.message.chat_id, text='OK. Enviando produtividade atual do {} {}.'.format(servidor.cargo, servidor.nome), reply_markup = main_menu)
    for page in range(4):
        info["p"] = page
        r = requests.post(url=url_api, params=info)
        doc = io.BytesIO(r.content)
        r = requests.get(url=url_api, params=info)
        doc.name = r.text
        bot.send_document(chat_id=telegram_id, document=doc)
...