Message Logger
**TL;DR:** an [exteraGram](https://exteragram.app) plugin that keeps deleted messages in
your chats and shows the edit history of edited ones, using what your
[telegram-panel](../../telegram-panel) message logger saved.
## Description
Message Logger connects exteraGram to a telegram-panel message logger and shows its data
natively in chats. Messages other people delete stay visible, edited messages get a full
edit history, and comments of deleted channel posts can still be opened. Marks are cached on
the device, so a chat opened again, even offline, shows them at once.
## Features
- **Deleted messages stay.** Messages others delete remain in the chat at 75% opacity with a
red trash icon (from the active icon pack) in the time row. Messages deleted while the app
was closed are confirmed with Telegram and restored from the logger copy.
- **Keep your own deletions.** The delete dialog gets a *Keep message for myself* checkbox: ticked,
the deletion goes to Telegram but the message stays on this device, marked deleted.
Unticked (the default), it is deleted as usual and hidden, so it isn't restored from the
logger. Deleting a message that is already deleted shows a plain dialog that hides it.
- **Hidden messages.** Hidden deleted messages are marked on the server, so every client
skips them. *Reveal hidden messages* in the chat's menu (Plugins) brings them back until
tapped again; a revealed one has *Unhide* in its menu, and selecting several shows an
Unhide button in the selection bar.
- **Removed chats.** Chats an account lost (left, kicked, deleted by you or the other side)
stay in the chat list with their logged messages, read-only and all marked deleted, until
the chat is back. Chats you delete yourself aren't listed; deleting a listed one hides it.
*Show removed chats* in the settings turns this off.
- **Old chat photos.** Chat photo changes are posted into the chat's log topic. A removed chat
shows its latest logged photo, and a chat's photos also list the logged ones it no longer
has: translucent, with a trash icon, in the photo viewer's previews.
- **Edit history.** *Edit history* in the message menu (right above Forward, for edited
messages) opens every version as a mock chat, also for the logger groups' own posts, with
an *Open topic* button for the history topic in the activity group.
- **Comments of deleted channel posts.** The comments button of a deleted post opens the
app's own comments section for it (avatars, names, replies, media), filled from the logged
comments.
- **Links into chats you're not in.** 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.
- **Reset marks.** *Reset deleted/edited marks* in the chat's menu (Plugins) forgets that
chat's cached marks and checks it with the server again; the same row in the plugin
settings does it for every chat. Hidden messages stay hidden.
- **Cache lifetime.** Cached answers are kept for 1, 7, 30, 90 or 365 days, or forever
(30 by default).
The account reading the logged copies must be a member of the logger and activity groups.
## Setup
1. In the panel, create a token per master, the account owning the logger groups
(Settings → API Tokens). Any Telegram account can use a token.
2. In the plugin settings, enter the panel URL and the tokens (separated by spaces).
3. Tap *Test connection*.
For diagnostics, see the gotchas section of [docs/sdk-notes.md](docs/sdk-notes.md).
## Documentation
- [How Message Logger works](docs/how-it-works.md): server sync and the local cache
- [Development](docs/development.md): getting started, repo layout, building and verifying, icon export
- [How exteraGram plugins work](docs/how-plugins-work.md): the plugin format and lifecycle
- [Device setup and ADB automation](docs/device-and-adb.md): deploy, watch, logs, debugger
- [Versioning and releases](docs/versioning-and-releases.md): git hooks, auto-bump, CI publishing
- [SDK notes](docs/sdk-notes.md): condensed exteraGram SDK API surface