Stream the media grid with a scroll buffer
This commit is contained in:
+8
-3
@@ -175,9 +175,14 @@ that deletion is irreversible. The delete button is disabled for a 5 second coun
|
||||
can take its place while the hidden one stays resumable. The strip text turns red and reads
|
||||
`API limited, retry in Ns` while Discord throttles media traffic, and a translucent
|
||||
`N scrapes completed` line appears when scrapes finish — it lives until the tab is reloaded. Each
|
||||
row shows `X/Yp (~Z%)` when the search total is known. The grid scrolls infinitely
|
||||
(a **Load more** button appears as a fallback). Media whose source answers `403` shows a
|
||||
**PRIVATE** tile and `404`/`410` shows **GONE**, with the reason in the tooltip. Some channels deny the bot the search endpoint (`Missing Access`) even though history
|
||||
row shows `X/Yp (~Z%)` when the search total is known. The grid streams: appending a page inserts
|
||||
only the new cards, so loaded images never rebuild or flash, and a stream **buffer** below the last
|
||||
row keeps the scroll alive while the next page is in flight. The buffer is capped at 1.5 viewport
|
||||
heights, shrinks as the filtered results run out, and says `Loading more…` / `Scroll for more` /
|
||||
`End of results`; auto-fill cascades pages while the buffer is still in view, so a filter that
|
||||
returns few items does not dead-stop at one page. At the very bottom while a page loads, an
|
||||
elastic nudge replaces the hard stop. Media whose source answers `403` shows a **PRIVATE** tile
|
||||
and `404`/`410` shows **GONE**, with the reason in the tooltip. Some channels deny the bot the search endpoint (`Missing Access`) even though history
|
||||
reads work, so the total is optional.
|
||||
**New scrape…** (rightmost) opens a popup with Server and Group chat trees (servers expand to
|
||||
channels; each row has Links and Download). Every scrape button asks for confirmation; the
|
||||
|
||||
+6
-2
@@ -135,8 +135,12 @@ box live in Chat, not Call, and the connection stats are not chips yet.
|
||||
apply until **Apply filters** is pressed; **Reset** clears every filter and the zoom, unloads the
|
||||
grid, and brings back the initial Load media prompt.
|
||||
- A **Card size** slider scales tiles from two-thirds of the old size up to one image per row; the
|
||||
page size follows the layout — full rows about 1.5 screens tall — and the grid infinite-scrolls,
|
||||
preloading the next page's JSON and preview images just before they are needed.
|
||||
page size follows the layout — full rows about 1.5 screens tall — and the grid streams: each page
|
||||
appends only its new cards (no image flash) and a buffer below the last row, capped at 1.5
|
||||
viewport heights, keeps the scroll alive while the next page loads. Auto-fill runs while the
|
||||
buffer is on screen, so short filtered pages never dead-stop; the note reads `Loading more…`,
|
||||
`Scroll for more`, or `End of results`, and an elastic nudge replaces the hard stop at the bottom
|
||||
while loading. The next page's JSON and previews are preloaded just before they are needed.
|
||||
**New scrape…** opens a popup with **Server** and **Group chat**
|
||||
tabs: servers expand into their text channels, each channel (and each group chat) has
|
||||
**Links** and **Download** buttons, and group chats always use the puppet. **History** lists
|
||||
|
||||
Reference in New Issue
Block a user