如果源消息被删除,如何删除目标电报消息

时间:2020-10-24 09:39:54

标签: python telegram telegram-bot telethon

我正在使用Telethon创建python程序,以找到一种在删除源消息后在目标通道中删除消息的方法。

例如:
A-源频道
B-目标频道

A发布一条消息X,该消息X转发到目标频道B。过了一段时间,A删除了消息X,B也应删除该消息。

我的代码如下:

@client.on(events.MessageDeleted)
async def edit_message_bot(event):
    ...

但是问题是,当我使用此方法时,源和目标通道的event msg_id有所不同,因此找不到删除它的方法。

请帮助

1 个答案:

答案 0 :(得分:1)

我在MessageDeleted事件中发现了source code,文档显示:

电报发送有关哪里消息的信息 如果发生在与其他用户的私人对话中,则被删除 或小组聊天中,因为消息ID是唯一 如果保存了聊天,则可以仅使用消息ID来识别聊天 以前。

Telethon 保存有关消息发生位置的信息, 因此它不知道消息在哪个聊天中被删除(这将 仅适用于存在频道ID 的频道。

这意味着chats=参数将无法可靠运行, 除非您打算只与频道和超级群组一起使用。

对于您而言,应该获取chats参数,该参数可以提供帮助。另外,您应该使用deleted_ids,而不是msg_idLink

我认为您应该将原始消息的消息ID和消息的ID存储在目标通道中,以便轻松找到它。因此,您将拥有一本类似于字典的东西,原始ID和一个新ID一起存储。