Загружает загруженный файл из телемарафона обновлений

Я использую телемарафон для своего бота телеграммы, но я все еще учусь использовать библиотеку.

Я хочу загрузить каждый файл от пользователя, который загружает файл в бота. Я использую обновления, и мой код выглядит так:

api_id = xxx
api_hash = 'xxx'
bot_token = 'xxx'

client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)

@client.on(events.NewMessage)
async def my_event_handler(event):
    if 'hello' in event.raw_text:
          await event.reply('hi!')

"если файл загружен в бота, скачать файл". Нужно ли мне создавать новую функцию или она может быть внутри этой функции my_event_handler? также я все еще не понимаю, как использовать download_file или download_media для загрузки файла.

Спасибо.


person Aer0nux    schedule 24.03.2020    source источник


Ответы (1)


Нужно ли мне создавать новую функцию или она может быть внутри этой функции my_event_handler?

Вы можете просто добавить несколько строк в свой my_event_handlerfunction. Я покажу вам, как это сделать.

api_id = xxx
api_hash = 'xxx'
bot_token = 'xxx'

client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)

    @client.on(events.NewMessage)
    async def my_event_handler(event):
        if 'hello' in event.raw_text:
              await event.reply('hi!')
        file_path = 'PATH_WHERE_FILE_IS_TO_BE_DOWNLOADED'
        result = await event.download_media(file = filepath)

result вернет None, если носитель не был предоставлен или если он был пустым. В случае успеха возвращается путь к файлу, так как он может отличаться от заданного.

Ознакомьтесь с документацией для получения дополнительной информации, вы должны проверить download_media, а также скачать_файл

person TheKill-996    schedule 24.03.2020
comment
event.download_media или файл работали нормально, спасибо. Кстати, могу ли я проверить файл, если он больше 5 МБ, файл не будет загружен? - person Aer0nux; 25.03.2020
comment
@ Aer0nux, тогда, пожалуйста, подпишите мой ответ как правильный, кстати, Telegram загрузит и отправит файл, соответствующий этим ограничениям: максимальный размер 5 МБ для фотографий и максимальный размер 20 МБ для других типов контента. - person TheKill-996; 25.03.2020