Chats can now be exported as HTML pages that open offline, with photos, voice and video playable inside them, and the listener catches up on busy channels right after a restart instead of 15 minutes later. No migration. Docker deployments only need the new pins.
Added
- Export a chat as an HTML page that opens offline, with photos, voice and video playable inside it. Export chat has a new format, HTML page (opens offline), and
GET /api/chats/{chat_ref}/exporttakesformat=html. It downloads a ZIP laid out like a Telegram Desktop export:index.html, pagedmessages.htmlfiles, one stylesheet and a folder per media type. You pick which media types to copy (in the dialog, all but files start ticked; through the API, only the types named inmedia=), a size limit per file (50 MB by default) and whether media plays in the page or shows as a link card. A file left out keeps its card and says why. The pages need no server, no network and no JavaScript. Deleted messages, earlier versions, reactions and transcripts are kept, as in the viewer. JSON stays the default and its output does not change; a JSON request that sendsmedia,max_file_mborplayersnow gets a 400 instead of having them ignored. No-download logins still cannot export. See Export as HTML and HTML export. Thanks to @C-Mberland for showing the need in #624. (#625)
Fixed
- After a restart, the listener replays each channel at once instead of 15 minutes later. Telethon fetched a saved channel's missed updates only 15 minutes after the saved state was loaded, so a busy channel often passed the 100 updates Telegram replays for a user account and its gap was dropped as too long. The same requests now go out as soon as the saved state is loaded, for every channel the session has an access hash for; one Telegram rate-limits then is still retried 15 minutes later. The too-long warning now says what is lost: new messages still arrive with the next backup, edits and deletions in the gap come back only with
SYNC_DELETIONS_EDITS=truewithinSYNC_DELETIONS_EDITS_DAYS, and a message posted and deleted inside the gap cannot be recovered. See Catching up after a disconnect. (#608)
Changed
LOG_CHAT_TITLES=truealso names the channel in the listener's too-long warning, with its cleaned title and its id (-100…, as the archive stores it), so you can tell which channel lost its replay. Off by default, and off the line is unchanged: no title, no id. Thanks to @Scalpinho for asking. (#608)
📋 Full changelog: docs/CHANGELOG.md