Telethon MessageMediaDocument MD5 - PullRequest
       6

Telethon MessageMediaDocument MD5

0 голосов
/ 25 августа 2018

Я работаю на клиенте 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, но не нашел ничего полезного.

...