Я работаю на клиенте Telegram, используя библиотеку Telethon .Я получаю последние сообщения из канала и фильтрую сообщения, содержащие файл APK.Вот некоторая часть кода Python:
import time
import config
import database
from datetime import datetime
from telethon import TelegramClient, sync
from telethon.tl.types import Channel, MessageMediaDocument
from telethon.tl.functions.messages import GetHistoryRequest
def extract_channels(dialogs):
result = []
if dialogs:
for dialog in dialogs:
entity = dialog.entity
if isinstance(entity, Channel):
result.append(entity)
return result
client = TelegramClient('some_name', config.api_id, config.api_hash)
me = client.start(
phone=config.phone_number,
password=config.two_factor_auth_password
)
open_dialogs = me.get_dialogs()
channels = extract_channels(open_dialogs)
database.connect()
for channel in channels:
last_message_id = database.get_last_message_id(channel.id)
channel_messages = client(GetHistoryRequest(
peer=channel,
offset_id=0,
offset_date=None,
add_offset=0,
limit=0 if last_message_id else config.limit,
max_id=0,
min_id=last_message_id,
hash=0)
)
messages = channel_messages.messages
if messages:
for message in messages[::-1]:
media = message.media
if isinstance(media, MessageMediaDocument):
if media.document.mime_type.lower() == config.apk_mime_type:
// apk_md5 = media.md5 ???
check_apk_md5_in_db(apk_md5)
time.sleep(config.wait_seconds)
database.close()
Затем мне нужно получить MD5 APK, но сначала мне нужно скачать файл APK, что дорого для моей текущей среды, потому что там много APKфайлы, которые я должен получить.Так есть ли способ получить MD5 файла в сообщении, не загружая его?Я искал документацию по Telethon и Telegram, но не нашел ничего полезного.