Загружает загруженный файл из обновлений telethon - PullRequest
0 голосов
/ 25 марта 2020

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

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

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 для загрузки файла.

Спасибо.

1 Ответ

0 голосов
/ 25 марта 2020

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

Вы можете просто добавить несколько строк в вашу функцию my_event_handler. Я покажу вам, как это сделать.

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 , а также download_file

...