【问题标题】:Telegram, tracking message edit/delete and editing my own messages (Client, not Bot API)电报,跟踪消息编辑/删除和编辑我自己的消息(客户端,而不是 Bot API)
【发布时间】:2017-12-18 22:48:20
【问题描述】:

所以我正在尝试以适当的方式将电报聊天记录到我的 ELK 存储中,而现有的 tgcli 解决方案太旧了(我还有一个 PoC,它通过 Xposed 从 Android 客户端记录消息编辑,但是它是在 UI 级别上实现的,并且是无效的)

我需要接收消息的编辑/删除,并使用客户端 Telegram API 来完成。

花了一天时间研究它:

  • 支持编辑消息出现在May 15, 2016 (telegram blog)
  • telegram-cli 的 tgl 库已有 2 年历史,很可能不支持该层
  • 我查看了 telegramdesktop 源,因为它很有前景,不幸的是他们的 git history 没有计划更改以支持编辑。
  • official layer version list 被截断。通过默默无闻来确保安全。
  • shelomentsevd/telegramgo 中使用的 golang 库完成的一些测试中,超组中的编辑由 TL_updateChannelTooLong 消息处理

现在我不想浪费更多时间来挑选库/资源。因此,我在询问以下任一库的体验,我正在寻找一个能够快速实现所需功能的库 - 对于不想深入了解 MTProto's specifics 的人。

【问题讨论】:

  • 你试过 Telethon (Python) 吗?支持消息editdelete事件

标签: telegram mtproto


【解决方案1】:

telethon 中操作要容易得多。

这是我直接从文档中收集 sn-ps 的示例代码。

from telethon import TelegramClient, events

API_ID = ...
API_HASH = " ... "

client = TelegramClient('session', api_id=API_ID, api_hash=API_HASH)

@client.on(events.MessageDeleted)
async def handler(event):
    # Log all deleted message IDs
    for msg_id in event.deleted_ids:
        print('Message', msg_id, 'was deleted in', event.chat_id)

@client.on(events.MessageEdited)
async def handler(event):
    # Log the date of new edits
    print('Message', event.id, 'changed at', event.date)


with client:
    client.run_until_disconnected()

文档:MessageEditedMessageDeleted)

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2022-08-24
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多