fix(api): a paused viewer keeps its HLS session, a refused subtitle publish backs off, and a NUL is a 422 everywhere
Deep-review round 4, backend half. - The periodic HLS reaper (round 3) applied the "finished and unfetched for 30 s" rule that only a NEW session request may apply. A remux finishes long before the film, and a paused player with a full buffer fetches nothing, so a one-minute pause killed the session and playback died ~30 s after resuming. The periodic pass is `reap_abandoned` now (the long idle limit, finished or not). - A subtitle `publish` that could not keep its output (full / read-only cache volume) returned quietly, so every poll queued the window and the whole-container pass again. It reports failure and the pass is backed off like a failed read; a cached VTT that cannot be READ is answered `unavailable` (`cache_unreadable`) instead of scheduling reads that can never land. - The subtitle routes bound `rating_key` / `sub_ord` (they become a cache file name: a 250-digit one was ENAMETOOLONG, which pathlib's exists() re-raises -> a 500), and the cache helpers no longer throw on such a name. - One app-wide handler turns psycopg's "text fields cannot contain NUL" DataError into a 422: round 3 guarded only the by-rating_key lookup, and `contains=`, `contains_group=`, reorder/bulk key lists and the collection search still 500'd. - The hand-written `db.get(...) is None -> 404 "Unknown ..."` siblings use `get_or_404` with a `what` (channel / video / user), so the Hungarian UI no longer shows English for a gone row.
This commit is contained in:
@@ -13,7 +13,8 @@
|
||||
"move_target": "The playlist you're moving it to doesn't exist any more.",
|
||||
"video": "This video isn't in the library any more.",
|
||||
"invite": "This invite doesn't exist any more.",
|
||||
"user": "This user doesn't exist any more."
|
||||
"user": "This user doesn't exist any more.",
|
||||
"channel": "This channel isn't in the library any more."
|
||||
},
|
||||
"ok": "OK",
|
||||
"offline": {
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
"move_target": "A lejátszási lista, ahová áthelyeznéd, már nem létezik.",
|
||||
"video": "Ez a videó már nincs a könyvtárban.",
|
||||
"invite": "Ez a meghívó már nem létezik.",
|
||||
"user": "Ez a felhasználó már nem létezik."
|
||||
"user": "Ez a felhasználó már nem létezik.",
|
||||
"channel": "Ez a csatorna már nincs a könyvtárban."
|
||||
},
|
||||
"ok": "OK",
|
||||
"offline": {
|
||||
|
||||
Reference in New Issue
Block a user