80e441fc48
chore: remove unused SkipSegmentOverride struct
2026-05-19 11:26:28 +02:00
1a9e1d60bc
feat: add skip segment overrides backend
2026-05-19 11:02:54 +02:00
237b5f3004
feat: add API token authentication
2026-05-19 02:46:47 +02:00
ccfb469299
feat: add CORS middleware for API routes
2026-05-19 02:46:44 +02:00
3a4fa82f14
feat: add year field to quick search response
2026-05-19 02:46:41 +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
825f481329
chore: formatting
2026-05-18 13:59:11 +02:00
a097410f40
refactor: use mock transport in watch order tests and harden server timeouts
2026-05-18 13:58:17 +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
c5ea265c46
feat: register episodes module in fx app
2026-05-17 21:16:44 +02:00
eb6bb3bbd4
feat: add episode service merge and broadcast tests
2026-05-17 21:16:39 +02:00
501dcb7d38
feat: add episode service with background refresh worker
2026-05-17 21:16:34 +02:00
daf4ec7923
feat: add episode availability querier interface methods
2026-05-17 21:16:19 +02:00
66333b335b
feat: add episode availability sql queries and generated code
2026-05-17 21:16:14 +02:00
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