Commit Graph

52 Commits

Author SHA1 Message Date
5dd49e585a refactor: extract CurrentUser and CurrentUserID helpers 2026-05-28 12:51:11 +02:00
cdebd407e4 refactor: update playback module imports for flattened package structure 2026-05-28 12:39:55 +02:00
8b405845a1 refactor: move playback service from subdirectory 2026-05-28 12:38:34 +02:00
ceec637a43 refactor: move playback repository from subdirectory 2026-05-28 12:38:26 +02:00
9695d7772d refactor: update playback handler imports for flattened pkg/net 2026-05-28 12:36:31 +02:00
dd4c7f80f3 feat: add transactional InTx to playback and watchlist repos 2026-05-28 12:17:19 +02:00
6cc25af18a refactor: switch playback to AnimePlaybackService interface 2026-05-28 12:12:09 +02:00
eb9e682b75 chore: formatting 2026-05-26 22:51:50 +02:00
e9576d7584 refactor: domain anime type 2026-05-26 22:45:16 +02:00
65a7b0f50d refactor: typed proxy key 2026-05-26 22:40:09 +02:00
9938bf6c57 fix: stop swallowing errors 2026-05-26 22:36:41 +02:00
28df1fc5f7 chore: drop empty fxtags 2026-05-26 22:28:57 +02:00
cce840e7f5 fix: harden subtitle cache 2026-05-26 22:25:22 +02:00
57be9a5d70 feat: record audit events for watch progress and completion 2026-05-26 16:14:37 +02:00
118c028873 feat: add structured error response helpers 2026-05-26 15:57:29 +02:00
28251876e1 fix: handle mac.Write errors in proxy token signing 2026-05-26 15:56:55 +02:00
1e9874a482 refactor: migrate env-var reads to config package 2026-05-26 15:38:14 +02:00
f8ba6db3d6 fix: use constant-time comparison for proxy token signature 2026-05-26 15:31:37 +02:00
4606c790f1 fix: handle backend errors and driver import 2026-05-24 22:46:02 +02:00
23246e2326 fix: surface segment save errors in editor 2026-05-22 16:43:15 +02:00
51355a4dbc fix: render segment overrides and skip progress 2026-05-22 16:34:38 +02:00
812dcd2448 feat: typed anime and playback payloads 2026-05-21 16:19:58 +02:00
285367ad84 refactor: rename SkipSegmentOverride to SkipSegmentOverrideRow to avoid sqlc conflict 2026-05-19 11:29:40 +02:00
1a9e1d60bc feat: add skip segment overrides backend 2026-05-19 11:02:54 +02:00
3230cf874f fix: skip hop-by-hop headers in proxy stream 2026-05-18 15:08:43 +02:00
943285b356 feat: add shared size limit constants 2026-05-18 15:08:26 +02:00
56c8618f5f chore: formatting 2026-05-18 14:08:17 +02:00
d258d9af27 feat: add lru+ttl subtitle cache 2026-05-18 14:07:53 +02:00
9859ddea42 feat: add shared user agent constants 2026-05-18 14:07:33 +02:00
493d69edae feat: expose initial mode and mode switch info in episode data api 2026-05-17 21:16:55 +02:00
9414d3b51e feat: use canonical episodes in watch data and wire episode service 2026-05-17 21:16:50 +02:00
88edf87178 fix: episode transition, progress save, and seek alignment 2026-05-15 02:22:43 +02:00
74e2aa50fd feat: improve video seeking and range request handling 2026-05-15 01:39:29 +02:00
c8b189d0e7 feat: preserve fullscreen when autoplaying next episode 2026-05-15 00:24:05 +02:00
a47497f822 chore: go fixes 2026-05-14 13:38:42 +02:00
596e8265f7 refactor: remove noisy debug logging 2026-05-14 12:41:41 +02:00
b3c906a16e fix: centralize watchlist dropdown js and fix page load timing 2026-05-13 19:05:10 +02:00
efbce87d5c feat: set status to completed on anime completion
Check existing watchlist status — if already completed, just clear
progress and remove from continue watching. Otherwise upsert with
status 'completed'.
2026-05-13 18:28:33 +02:00
28e8b322d0 feat: add watch-complete endpoint
Removes continue_watching_entry and clears progress when the last
episode finishes so it no longer shows in Continue Watching.
2026-05-13 18:22:18 +02:00
b7f91f3b1b feat: save progress to continue_watching_entry only
Replace SaveWatchProgress (UPDATE watch_list_entry) with
UpsertContinueWatchingEntry so progress persists for any anime
without creating watchlist entries.
2026-05-13 18:16:02 +02:00
a5b0aeca98 fix: fetch both sub and dub streams on watch page load
Previously the backend only fetched streams for the single requested
mode (defaulting to sub), so modeSources never had a dub entry.
The frontend's switchMode showed visual feedback but streamUrlForMode
returned an empty string since no dub token existed.
Now both modes are fetched and availableModes is derived from what
actually resolved.
2026-05-13 17:53:12 +02:00
e7dfaaf8c0 chore: format with prettier 2026-05-13 13:36:22 +02:00
846fe9ccd9 feat: add proxy transport with dns caching, subtitle handler, and stream pre-warm 2026-05-13 13:35:27 +02:00
8006868fe2 fix: improve video title matching and segments null error 2026-05-13 13:23:54 +02:00
14b7668afa chore: formatting 2026-05-13 13:01:39 +02:00
0f8d1c7dc0 fix: lint warnings - errcheck and switch style 2026-05-13 12:59:37 +02:00
687ab64e5e feat: add episode thumbnails and proxy stream handlers, update watch route 2026-05-13 12:43:13 +02:00
28a1723166 feat: add proxy tokens, skip segments, and title-based search to playback service 2026-05-13 12:43:08 +02:00
71c3d4b68b feat: add proxy token key provider to playback module 2026-05-13 12:43:02 +02:00
458ee52604 fix: remaining domain interface and repository return types 2026-05-13 11:20:53 +02:00