Telegram Telethon MessageMediaDocument MD5

Telegram Telethon MessageMediaDocument MD5,telegram,telethon,Telegram,Telethon,我正在使用图书馆开发一个电报客户端。我从通道获取最近的消息,并过滤包含APK文件的消息。下面是python代码的一些部分: 导入时间 导入配置 导入数据库 从日期时间导入日期时间 从telethon导入电报客户端,同步 从telethon.tl.types导入频道,MessageMediaDocument 从telethon.tl.functions.messages导入GetHistoryRequest def提取_通道(对话框): 结果=[] 如果对话框: 对于对话框中的对话框: entit

我正在使用图书馆开发一个电报客户端。我从通道获取最近的消息,并过滤包含APK文件的消息。下面是python代码的一些部分:

导入时间
导入配置
导入数据库
从日期时间导入日期时间
从telethon导入电报客户端,同步
从telethon.tl.types导入频道,MessageMediaDocument
从telethon.tl.functions.messages导入GetHistoryRequest
def提取_通道(对话框):
结果=[]
如果对话框:
对于对话框中的对话框:
entity=dialog.entity
如果存在(实体、通道):
结果追加(实体)
返回结果
client=TelegramClient('some_name',config.api_id,config.api_hash)
me=client.start(
电话=配置电话号码,
password=config.two\u factor\u auth\u password
)
open_dialogs=me.get_dialogs()
通道=提取通道(打开对话框)
database.connect()
对于通道中的通道:
last\u message\u id=数据库。获取\u last\u message\u id(channel.id)
通道_消息=客户端(GetHistoryRequest(
对等=通道,
偏移量_id=0,
偏移量\日期=无,
加上_offset=0,
如果最后一条消息\u id else config.limit,
max_id=0,
min_id=最后一条消息\u id,
散列=0)
)
消息=通道消息。消息
如果消息:
对于消息[:-1]中的消息:
媒体=message.media
如果isinstance(媒体、MessageMediaDocument):
如果media.document.mime\u type.lower()==config.apk\u mime\u type:
//apk_md5=media.md5???
检查数据库中的apk md5(apk md5)
time.sleep(config.wait_秒)
database.close()

然后我需要获取APK的MD5,但我必须首先下载APK文件,这对于我当前的环境来说是非常昂贵的,因为我必须获取很多APK文件。那么,有没有办法在不下载的情况下获取消息中文件的MD5?我已经在Telethon和Telegrame文档中搜索过了,但找不到任何有用的东西。

为什么需要MD5?请解释一下more@Alihosseinshahabi我有一个包含大量md5的数据库,我需要获取apk的md5以查看它是否在数据库中,如果是,请下载apk,否则忽略它。每个媒体(包括照片、视频、文件等)在电报中都有唯一的
媒体id
。我建议你保存
Media\u id
而不是
MD5
@Alihosseinshahabi是的,他们有一个唯一的id,但我的情况是,我已经得到了一个MD5数据库,以便在某些频道内查找。无论如何,谢谢你的评论。