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.
- В sochix / TLSharp отсутствуют явные примеры получения правок. Наверное, будет трудно
- https://github.com/danog/MadelineProto кажется хорошим местом для начала
- есть также tdlib, libqtelegram, TelegramAPI
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)