Add the Bot-tab backfill control room and media strip rules
This commit is contained in:
+18
-5
@@ -142,10 +142,19 @@ box live in Chat, not Call, and the connection stats are not chips yet.
|
||||
**Links** and **Download** buttons, and group chats always use the puppet. **History** lists
|
||||
each scrape with start time, duration, pages, messages, media counts, bytes, files, and previews,
|
||||
and offers **Resume** for paused ones and **Delete** for anything not running.
|
||||
The scrape strip shows live progress with a pulse and **Stop**. Images and GIFs render from the
|
||||
cached preview when one exists, then the local file, then the CDN URL; videos and audio are link
|
||||
cards with the poster and posted time in the tooltip.
|
||||
- Bot shows the slopbot connection state and the scrape queue.
|
||||
The scrape strip shows live progress with a pulse and **Stop**: every running/queued scrape plus at
|
||||
most one paused scrape, whose **Stop** only dismisses it from the strip (it stays resumable and the
|
||||
next paused scrape can appear). The line turns red with `API limited, retry in Ns` while Discord
|
||||
throttles, and a translucent `N scrapes completed` note appears as scrapes finish and clears when
|
||||
the tab is reloaded. Images and GIFs render from the cached preview when one exists, then the local
|
||||
file, then the CDN URL; videos and audio are link cards with the poster and posted time in the
|
||||
tooltip.
|
||||
- Bot shows the slopbot connection state, the backfill queue, and the media tunables. Backfill has
|
||||
totals and an ETA with a Bot/Puppet split, then one job card per chat with its member scrapes,
|
||||
per-kind pending, a progress bar, an ETA, and Start/Pause; the header has **Start backfill** and
|
||||
**Pause all**. A red banner reads `API timed out, increase timers` during a Discord cooldown. The
|
||||
three settings groups (Backfilling, Scraping, Timers) save to `preferences.json` and retune live
|
||||
jobs. The error list sits below with the Clear button.
|
||||
- The views are self-contained: `poc/public/media.js` and `media.css`, over the `/api/media/*`
|
||||
routes in the table below. See [media.md](media.md).
|
||||
|
||||
@@ -273,7 +282,10 @@ replaceable.
|
||||
| GET | `/api/media/:scrapeId/:itemId/thumb` | none | The cached preview (type from `preview_ext`) |
|
||||
| GET | `/api/media/:scrapeId/:itemId/stream` | none | Playback/full-view source: the local file, or the remote URL refreshed from the source message. Supports `Range`. Non-media upstream responses (provider pages) return `415` |
|
||||
| GET | `/api/media/scrapes` | none | Every scrape with state and counters |
|
||||
| GET | `/api/media/status` | none | Slopbot connection state and the scrape list |
|
||||
| GET | `/api/media/status` | none | Slopbot connection state, the scrape list, and `limitedUntil` while a Discord cooldown holds media traffic |
|
||||
| GET | `/api/media/backfill` | none | Backfill jobs per chat with pending/cached/failed, per-kind pending, progress, throughput, ETA, totals with a Bot/Puppet split, the live settings, and `limitedUntil` |
|
||||
| POST | `/api/media/backfill/start` | `chatId?` | Start every job with pending rows, or one chat's job |
|
||||
| POST | `/api/media/backfill/pause` | `chatId?` | Pause all jobs, or one chat's job, after the current batch |
|
||||
| GET | `/api/media/authors` | none | Distinct posters across every scrape, with counts |
|
||||
| GET | `/api/media/stats` | same filters as `/api/media` | Counts per kind (`image`, `gif`, `video`, `audio`), each with `total`, `downloaded`, `cached`, `notDownloaded` |
|
||||
| GET | `/api/media/storage` | none | Usage against the limit, per-kind sizes, `nearLimit`; marks old scrapes when over |
|
||||
@@ -285,6 +297,7 @@ replaceable.
|
||||
| GET | `/api/media/:scrapeId/:itemId/anim` | none | The cached animated GIF for hover playback |
|
||||
| POST | `/api/daemon/restart` | none | Replace the daemon process with a fresh copy (the client keeps running) |
|
||||
| POST | `/api/media/scrape/stop` | `id` | Stop a media scrape |
|
||||
| POST | `/api/preferences` | `visibleGuilds?`, `tts?`, `audio?`, `favourites?`, `media?` | Also accepts `media.tunables` with `backfill`, `scrape`, and `timers` groups; changes apply to live jobs immediately |
|
||||
| POST | `/api/media/scrape/resume` | `id` | Continue a paused scrape from its cursor |
|
||||
| POST | `/api/media/clean` | `ids?` | Delete the given scrapes, or every scrape when `ids` is absent |
|
||||
| GET | `/api/logs` | `limit` | The persistent action log |
|
||||
|
||||
Reference in New Issue
Block a user