Message Logger: show logged edits and deletions from telegram-panel [no bump]
Publish plugin / publish (push) Successful in 4s

Keeps deleted messages (75% opacity, red icon-pack trash icon), restores
logged messages deleted while away, reports deletions, and shows edit
history as a mock chat (Edit history in the message menu, Open topic).
Message links and history open as any signed-in account with access.
Per-master API tokens; chat state synced per checked range with an hour's
validity, cached in SQLite with a configurable lifetime.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
lyuksovannyyandClaude Opus 5.5 committed 2026-10-08 23:55:23 +02:00
1 parent 80f1d5e55c
commit 9b2f26a845
26 files changed
+2928 -112

No files matched your search

+37 -1
View File
@@ -1,4 +1,40 @@
# exteraGram Plugin Base
# Message Logger (exteraGram plugin)
Shows what a [telegram-panel](../../telegram-panel) message logger saved, natively in chats:
- messages others delete stay (the delete updates are dropped), at 75% opacity with a red trash
icon (from the active icon pack) in the time row, and are reported to the server;
- logged messages deleted while the app was closed (or never seen deleted by the server, e.g.
bot-logged chats) are confirmed with Telegram, reported, and restored from the logger copy;
- *Edit history* in the message menu (right above Forward, for edited messages) opens every
version as a mock chat — also on the logger groups' own posts — with an *Open topic* button
for the history topic in the activity group. Versions and their media are read from the activity group through
a signed-in account that can (the current one, the master, or any member); otherwise the
server's text is shown and media are marked unavailable;
- message links into a chat the current account isn't in (e.g. a log post's "Message" link)
open that chat as a signed-in account that is in it; going back returns to your account.
Every signed-in account's chats are cached client-side for this.
The server only points at copies (logger/activity group message ids); the client reads them
through its own session, so the account must be a member of those groups.
The server is asked about a chat only when needed: when it wasn't checked within the last hour
(from the oldest loaded message on; the answer replaces the chat's cached marks), when older
history is loaded past the checked range (that part only), or after an edit/delete event in the
chat. Answers hold at most 100 marks (edited/deleted) and 100 missing ids, newest first. Marks
are cached per chat in the plugin's SQLite (`state.db`, no size cap), so a chat opened again —
even offline — shows them at once, and deleted messages are restored from the cache. An expired
chat keeps its cache until the next successful check, which replaces it and starts over. Cached
answers older than *Cache lifetime* (1/7/30/90/365 days or never; 30 by default) are removed,
checked once a day (from local midnight) and when the setting changes.
Setup: in the panel create a token per master — the account owning the logger groups —
(Settings → API Tokens); in the plugin settings enter the panel URL and the tokens (separated by
spaces), then *Test connection*. Any Telegram account can use a token. Diagnostics: see `docs/sdk-notes.md` (gotchas section).
The rest of this README describes the build toolchain this repo came from (pluginBase).
## Plugin base toolchain
A build toolchain and ADB automation for writing [exteraGram](https://exteragram.app) plugins
as ordinary multi-file Python projects instead of hand-maintaining one giant `.py` file.