как определить и загрузить изображения в telehton newMessage event? - PullRequest
0 голосов
/ 26 сентября 2019

Я написал простой скрипт на Python для сохранения всех сообщений, которые видит пользователь, в файлы с помощью обработчика событий telethon:

@CLIENT.on(events.NewMessage)

async def my_event_handler(event):
    sender = await event.get_sender()
    chat_id = event.chat_id

    out ='\n\n' +  sender.username + ': ' + event.text + ' [' + str(chat_id) + ']'
    name = hashlib.sha1(out.encode('utf-8')).hexdigest()

    outdir = ECHODIR + '/' + str(chat_id)

    f_h = open(outdir + '/' + name, 'a')
    f_h.write(out)
    f_h.close()

CLIENT.start()
CLIENT.run_until_disconnected()

как я могу определить, что изображение получено, и загрузить изображение из события?

ps удален ненужный код, например, чтобы проверить, существует ли dir

1 Ответ

1 голос
/ 26 сентября 2019

В соответствии с кратким справочником объектов для Message, свойство message.photo будет " Photo media в этом сообщении, если оно есть.".

Это означает, что для обнаружения изображения (или фотографии) в вашем коде вы можете сделать:

if event.photo:
    ...

Методы Message также содержатmessage.download_media() такой, что:

saved_path = await event.download_media(optional_path)
...