Commit Graph

328 Commits

Author SHA1 Message Date
cb143be35c feat: add episode availability cache and provider mapping models 2026-05-17 21:16:09 +02:00
4126e56d69 feat: add episode domain types 2026-05-17 21:16:04 +02:00
dd2f7247f1 feat: add episode availability cache and provider mapping tables 2026-05-17 21:15:59 +02:00
9ba327d5c5 feat: add timeout and abort handling to command palette search 2026-05-17 20:38:08 +02:00
cf53ffdd77 feat: expand continue watching in command palette 2026-05-17 17:34:27 +02:00
66edd9c062 feat: replace quick search with command palette 2026-05-17 17:24:07 +02:00
0e5416aab3 feat: add reviews subpage with infinite scroll 2026-05-15 19:36:35 +02:00
59fb0ed7f8 feat: add statistics and themes lazy section dispatch 2026-05-15 19:36:27 +02:00
897d4a0c2e feat: add formatDate template function and subdirectory glob support 2026-05-15 19:36:12 +02:00
ae64f39e2c feat: add service implementations for staff, statistics, themes, reviews 2026-05-15 19:36:08 +02:00
df0aa52490 feat: add domain type aliases and service interface methods 2026-05-15 19:36:04 +02:00
4bd6e71e8c fix: handle empty random anime response and improve surprise-me UX 2026-05-15 17:22:56 +02:00
0df43b6f51 feat: add HTMX-driven filter bar and browse fragments 2026-05-15 03:25:14 +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
eb173ac072 chore: formatting 2026-05-14 12:30:06 +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
6c45a80623 fix: pass watchlist status to anime detail page
Anime detail page never looked up or passed the user's watchlist
status, so the dropdown always showed 'Add to Watchlist'. Now
queries watch_list_entry and passes Status and WatchlistIDs.
2026-05-13 18:18:22 +02:00
413ee70923 feat: use saved progress for watch button on anime page
Check continue_watching_entry to find the episode to resume from.
Show 'Continue Episode N' instead of 'Watch Now' when progress exists.
2026-05-13 18:16:25 +02:00
89e0120ca6 feat: add GetContinueWatchingEntry to watchlist service
Expose continue watching entry lookup so other handlers can check
saved progress for an anime without needing the playback service.
2026-05-13 18:16:14 +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
b625f024f3 fix: allow static and dist paths to bypass auth middleware 2026-05-13 16:04:50 +02:00
9077dbbfcf fix: remove unused os import in database.go 2026-05-13 15:55:58 +02:00
239957d261 fix: use DATABASE_FILE env var consistently and update Dockerfile 2026-05-13 15:55:19 +02:00
6f1b4db4f5 fix: enforce authentication by redirecting unauthenticated users to login 2026-05-13 15:23:37 +02:00
3f6da13299 fix: remove explicit transaction from migration 012
Goose wraps each migration in a transaction automatically.
Explicit BEGIN TRANSACTION/COMMIT caused a nested transaction
error in SQLite.
2026-05-13 13:46:44 +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
ff15a82f10 fix: watchlist 500 from missing UUID and toast classList error 2026-05-13 13:10:04 +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
cca1f0c68d chore: remove unreachable worker package 2026-05-13 12:56:45 +02:00
ec664a6d07 chore: remove unreachable auth middleware and context package 2026-05-13 12:54:16 +02:00
10295a239f chore: remove unreachable middleware package 2026-05-13 12:52:37 +02:00
a99b8b3844 chore: remove unreachable functions 2026-05-13 12:51:47 +02:00
c814e1d391 fix: align template data keys with template expectations 2026-05-13 12:49:56 +02:00
862961d262 feat: add ResolveProxyToken to PlaybackService interface 2026-05-13 12:43:39 +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
cc74b6720e feat: update provider interface for title-based search 2026-05-13 12:42:47 +02:00
3ab9edd256 feat: add GetAllEpisodes to anime domain and service 2026-05-13 12:42:41 +02:00
458ee52604 fix: remaining domain interface and repository return types 2026-05-13 11:20:53 +02:00