From e994094cf22ee0eccd6a04b02984a62ea97df7f4 Mon Sep 17 00:00:00 2001 From: Baruch Odem Date: Sun, 24 May 2020 19:09:45 +0300 Subject: [PATCH] Get filename even if it is not the first attribute --- telegram-download-daemon.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/telegram-download-daemon.py b/telegram-download-daemon.py index 61e8c0b..fa0582f 100644 --- a/telegram-download-daemon.py +++ b/telegram-download-daemon.py @@ -8,7 +8,7 @@ from os import getenv from sessionManager import getSession, saveSession from telethon import TelegramClient, events -from telethon.tl.types import PeerChannel +from telethon.tl.types import PeerChannel, DocumentAttributeFilename import logging logging.basicConfig(format='[%(levelname) 5s/%(asctime)s]%(name)s:%(message)s',level=logging.WARNING) @@ -40,12 +40,16 @@ proxy = None async def sendHelloMessage(client, peerChannel): entity = await client.get_entity(peerChannel) + print("Hi! Ready for you files!") await client.send_message(entity, "Hi! Ready for you files!") async def log_respond(event, respond): print(respond) await event.respond(respond) +def getFilename(event: events.NewMessage.Event): + return next(x for x in event.media.document.attributes if isinstance(x, DocumentAttributeFilename)).file_name + with TelegramClient(getSession(), api_id, api_hash, proxy=proxy).start() as client: @@ -62,7 +66,7 @@ with TelegramClient(getSession(), api_id, api_hash, proxy=proxy).start() as clie print(event) if event.media: - filename=event.media.document.attributes[0].file_name + filename=getFilename(event) await log_respond(event, f"Downloading file {filename} ({event.media.document.size} bytes)") await client.download_media(event.message, downloadFolder)