Telegram, редактирование сообщений отслеживания / удаление и редактирование моих собственных сообщений (клиент, а не Bot API)

Поэтому я пытаюсь правильно вести запись чатов с телеграммой в свое хранилище ELK, и существующее решение с tgcli слишком старое (у меня также есть PoC, который регистрирует изменения сообщений из клиента Android через Xposed, но он реализован на верх уровня пользовательского интерфейса и неэффективно)

Мне нужно получать правки / удаление сообщений и делать это с клиентским Telegram API.

Потратил день на исследование этого:

  • поддержка редактирования сообщений появилась 15 мая 2016 года (блог telegram)
  • Библиотека tgl telegram- cli 2 года и, скорее всего, не поддерживает этот слой
  • Я заглянул в источник telegramdesktop, поскольку он был очень многообещающим, к сожалению, в их истории git нет изменений схемы, ожидающих поддержки редактирования.
  • И официальный список версий слоя усекается. Безопасность через неизвестность
  • из некоторых тестов, выполненных с использованием библиотеки golang, используемой в https://github.com/shelomentsevd/telegramgo, изменения в супергруппе обрабатываются сообщением TL_updateChannelTooLong

Теперь я не хочу терять больше времени на выбор библиотек / источников. Итак, я спрашиваю об опыте работы с любой из следующих библиотек, я ищу ровно одну библиотеку, которая позволит быстро реализовать необходимые функции - для тех, кто не хочет углубляться в особенности MTProto.

0 ответов

В телемарафоне это сделать намного проще.

Вот пример кода, который я собрал, собирая фрагменты прямо из документации.

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()

Документы для: MessageEdited, MessageDeleted)

Другие вопросы по тегам