Commit Graph

808 Commits

Author SHA1 Message Date
45341ae212 feat: lazy-load simulcast content via htmx with skeleton 2026-07-06 22:10:24 +02:00
ee7efc33b7 feat: implement episode classification in playback service 2026-07-06 20:47:03 +02:00
c36d180961 feat: add episode classifications handler test 2026-07-06 20:46:59 +02:00
d7385c01b1 feat: add episode classifications handler endpoint 2026-07-06 20:46:55 +02:00
5c64227f30 feat: add episode classification enrichment implementation 2026-07-06 20:46:52 +02:00
8b8f85bea7 feat: add classification fields to episode service 2026-07-06 20:46:48 +02:00
e75845b78a feat: add episode classification domain interfaces 2026-07-06 20:46:45 +02:00
610b5029a3 test: update title provider stub signature 2026-07-06 19:09:16 +02:00
0e3d4b4b11 feat: wire anime and episode count into title loading 2026-07-06 19:09:11 +02:00
78bd003b7c feat: pass anime context to episode title provider interface 2026-07-06 19:09:03 +02:00
6dfca350f0 fix: replace fmt.Printf with observability warn in error page path 2026-07-06 07:38:20 +02:00
e556b0fe09 test: add episode titles endpoint test 2026-07-06 07:37:10 +02:00
b32873fc76 feat: add episode titles api endpoint 2026-07-06 07:37:06 +02:00
bf13a4a1f8 feat: add episode title enrichment to playback service 2026-07-06 07:37:01 +02:00
73b4436f61 feat: wire tvmaze as episode title provider 2026-07-06 07:36:58 +02:00
522a99ddf8 test: add episode title enrichment tests 2026-07-06 07:36:54 +02:00
5679be866a feat: add episode title enrichment with cache update 2026-07-06 07:36:51 +02:00
51bdf5c53a feat: wire title provider and singleflight into episode service 2026-07-06 07:36:46 +02:00
f3b6489d03 refactor: accept episode provider interface in provider mapping 2026-07-06 07:36:42 +02:00
9487ff124a feat: add playback episode title service interface 2026-07-06 07:36:39 +02:00
dbda4b96a4 feat: add episode title provider and service interfaces 2026-07-06 07:36:36 +02:00
f5b38c519b test: add tests for deferred mode sources and local anime lookup 2026-07-06 07:09:32 +02:00
a595ade533 refactor: split watch data build into focused helper functions 2026-07-06 07:09:27 +02:00
8ec647943e test: replace episode metadata tests with deferred playback test 2026-07-06 07:09:23 +02:00
722f936734 feat: defer provider resolution in watch page handler 2026-07-06 07:09:18 +02:00
8e11afb3b5 test: update episode service tests for provider-only flow 2026-07-06 07:09:14 +02:00
80b5aec448 feat: remove jikan fallback from episode refresh 2026-07-06 07:09:10 +02:00
d06d6de4c4 feat: bump availability version to 4 and drop jikan-only cache paths 2026-07-06 07:09:06 +02:00
1110cb1809 feat: merge provider titles into canonical episodes 2026-07-06 07:09:02 +02:00
9f370448ed feat: add deferred playback data context helpers 2026-07-06 07:08:54 +02:00
6a7cd55b47 feat: add title field to episode availability domain 2026-07-06 07:08:48 +02:00
137c6ab644 test: use wg.Go in concurrent resolve test 2026-07-05 23:25:17 +02:00
7d59674649 test: add forced source refresh and manifest cache integration tests 2026-07-05 23:08:50 +02:00
7278676a2e refactor: sanitize proxy error messages and observability 2026-07-05 23:08:44 +02:00
0abee703a1 feat: wire source cache and manifest cache into playback pipeline 2026-07-05 23:08:39 +02:00
8c2562496a feat: add HLS manifest cache with TTL-based expiry 2026-07-05 23:08:34 +02:00
a0d11e3a7b feat: add source cache with stale-while-revalidate 2026-07-05 23:08:26 +02:00
a31d71bca6 refactor: use strings.SplitSeq in static delivery 2026-07-05 22:08:29 +02:00
11ec256e18 refactor: use strings.SplitSeq in cookie Forwarded parsing 2026-07-05 22:08:25 +02:00
7dfc54b3e3 refactor: use slices.Contains for season validation 2026-07-05 22:08:21 +02:00
d2d94b919d refactor: use maps.Copy for watchlist map clone 2026-07-05 22:08:17 +02:00
a3cfae33f2 test: add shared cache test for top pick/top picks 2026-07-05 22:06:06 +02:00
04a9b0b0bd feat: share cache between top pick and top picks endpoints 2026-07-05 22:06:00 +02:00
57a6aa8f7a test: fix port default test to match behavior 2026-07-04 05:20:36 +02:00
9c19f0da1e test: add formatHTTPStatus tests 2026-07-04 05:17:30 +02:00
d1eafdd6de test: add isLocalClientIP tests 2026-07-04 05:17:30 +02:00
a527981447 test: add formatBytes tests 2026-07-04 05:17:30 +02:00
43fb5509f1 test: add formatDurationMillis tests 2026-07-04 05:17:29 +02:00
b796560f77 test: add quoteIfNeeded tests 2026-07-04 05:16:25 +02:00
e1de04f72e test: add popField and field formatting tests 2026-07-04 05:16:25 +02:00