morethanwords/tweb/master • 1f060db • 5 files, +342/-93 Page forum topics by server-order offsets, i

Telegram github commits and releases

Telegram github commits and releases

@tgappsupdates

Broadcast from the most important Telegram clients' repositories

4,538 subscribers
Open in Telegram
morethanwords/tweb/master1f060db5 files, +342/-93
Page forum topics by server-order offsets, immune to drafts

A topic draft injects its topic into the topic-list folder on startup
('draft_updated' -> getForumTopicById), and the next-page offsets were
derived from the tail of the locally sorted list - so the very first
messages.getForumTopics request could start deep in the list, never
loading everything above the drafted topic, and a mid-list draft punched
a permanent hole below the loaded frontier. Offsets now advance strictly
in the server's response order, per forum (tdesktop's model); only
server search still pages by its own results' tail. Also stop
double-counting server-counted topics in a virtual folder's count.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

morethanwords/tweb/master173f3c61 files, +8/-4
Play the round video while it uploads

12b30e902 stopped an uploading video bubble from autoplaying under the
progress spinner: the autoplay attribute is suppressed while
message.uploadingFileName is set, and playback resumes when the upload
promise settles. Round videos were excluded from both halves, on the
assumption that their is_outgoing handling covers it — but that path
(divRound.onLoad) only wires up the global, with-sound media element.
The looping muted preview inside the circle is the plain inline <video>,
which was left with autoplay=false and paused until the bubble got
re-rendered, i.e. until the chat was reopened. Scrolling away and back
did not help either: animationIntersector only resumes players whose
autoplay is set.

A round video now keeps its autoplay attribute through the upload, as
the official clients do (tdesktop's autoplayEligible only skips a file
that is still 'preparing'), so the circle plays from the moment it is
sent. A regular video would just play under the spinner, so it still
waits — and when its upload completes it now gets the attribute back
instead of a bare play(), so the intersector picks it up again after it
scrolls out of view.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

#webk
Open post in Telegram