Commit Graph

61 Commits

Author SHA1 Message Date
188eec58a2 refactor: reduce cyclomatic complexity of UpsertSkipSegmentOverride 2026-06-11 12:59:58 +02:00
b72bace16a refactor: use url.Values in proxy token url 2026-06-11 12:29:29 +02:00
f8cf4579af test: add HLS playlist rewrite and detection tests 2026-06-08 02:13:41 +02:00
1a1189d035 feat: add HLS playlist rewriting to proxy stream 2026-06-08 02:13:32 +02:00
db4dc20603 refactor: replace HMAC proxy tokens with in-memory store 2026-06-08 02:13:21 +02:00
625c3bbe25 refactor: dedupe repo tx 2026-06-01 22:22:14 +02:00
bfe23276ba refactor: dedupe proxy handlers 2026-06-01 22:14:15 +02:00
e146b0320a docs: add package comments to playback packages 2026-06-01 12:55:43 +02:00
aebdd75942 fix: preserve watchlist progress on complete and status update 2026-05-29 00:03:47 +02:00
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