eb173ac072
chore: formatting
2026-05-14 12:30:06 +02:00
2619dc2c94
fix: autoplay video instantly on watch page load
2026-05-13 23:48:09 +02:00
e675f125d4
fix: replace revealed sentinel with intersect once for infinite scroll
2026-05-13 20:55:45 +02:00
4f6b534093
refactor: extract watchlist remove button into shared component
2026-05-13 19:08:13 +02:00
b3c906a16e
fix: centralize watchlist dropdown js and fix page load timing
2026-05-13 19:05:10 +02:00
950e143faf
fix: clean up completion flow and watch page dropdown
2026-05-13 18:44:08 +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
851c9d701f
feat: link continue watching cards to saved episode
...
Include ?ep=N in the watch links so clicking a continue watching
card loads the correct episode and resumes from saved progress.
2026-05-13 18:16:19 +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
699394e2e9
fix: add linker flags to server build
2026-05-13 16:09:20 +02:00
1b20fa9d32
fix: enhance entrypoint diagnostics and ensure server binary is executable
2026-05-13 16:07:22 +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
afbfc59452
feat: set DB_PATH to /app/data/mal.db and ensure directory exists
2026-05-13 15:54:45 +02:00
299553a878
fix: revert sqlc schema to migrations/ matching main branch
2026-05-13 15:50:21 +02:00
ce9dde3af7
fix: sqlc schema path to absolute path for Docker build
2026-05-13 15:38:38 +02:00
6f1b4db4f5
fix: enforce authentication by redirecting unauthenticated users to login
2026-05-13 15:23:37 +02:00
037137f48a
fix: update dist paths to include static/ subdirectory matching Bun output
2026-05-13 15:07:32 +02:00
7dfae428e5
fix: entrypoint now logs dist contents instead of clearing
2026-05-13 14:58:28 +02:00
00fb8b3b2f
fix: ensure dist files are cleared at container startup
2026-05-13 14:12:02 +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
27a1017c5d
fix: update migration paths in Dockerfile and sqlc config
2026-05-13 13:42:32 +02:00
e7dfaaf8c0
chore: format with prettier
2026-05-13 13:36:22 +02:00
d00f9493af
fix: cast cloneNode to DocumentFragment for firstElementChild access
2026-05-13 13:35:53 +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
d7ee662bb0
fix: delete button removes correct watchlist item
2026-05-13 13:14:20 +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
5f7d82fc0b
chore: move test-only helpers to test file
2026-05-13 13:00:59 +02:00
0f8d1c7dc0
fix: lint warnings - errcheck and switch style
2026-05-13 12:59:37 +02:00
0a5ed4ae76
fix: add missing test helpers and fix interface assertion
2026-05-13 12:59:05 +02:00
5a4d48f1b7
chore: remove unreachable middleware package
2026-05-13 12:57:17 +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
77ad87bbd8
fix: use exported field names for EpisodeData in watch template
2026-05-13 12:43:29 +02:00
0e25f98f37
refactor: update watch route in watchlist_actions template
2026-05-13 12:43:24 +02:00
2f47dfce94
refactor: update watch route in continue_watching template
2026-05-13 12:43:18 +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
344317c7e8
chore: reorder imports in allanime client test
2026-05-13 12:42:58 +02:00
ba75d0c22c
feat: update allanime provider for title-based search
2026-05-13 12:42:52 +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
345853406c
refactor: general architectural cleanup and bug fixes
2026-05-13 11:20:49 +02:00
1b88c4597c
feat: implement auth middleware using domain service
2026-05-13 11:20:48 +02:00
1380fda7f7
feat: implement allanime provider with utls support
2026-05-13 11:20:47 +02:00
4d1fd2834b
feat: migrate playback domain to modular architecture
2026-05-13 11:20:46 +02:00
ab31cf4c4c
cleanup: remove redundant and old architectural files
2026-05-13 10:34:16 +02:00
0d6c7613a9
feat: migrate playback module to modular domain pattern
2026-05-13 10:34:01 +02:00
c94a2fed04
feat: migrate watchlist module to modular domain pattern
2026-05-13 10:33:24 +02:00
c32ffd54de
feat: migrate anime module to modular domain pattern
2026-05-13 10:32:44 +02:00
34aeb91252
feat: migrate auth module to modular domain pattern
2026-05-13 10:31:46 +02:00
afdd880d0e
feat: switch to fx app in main
2026-05-13 10:30:55 +02:00
424434a2a5
feat: add modular template renderer
2026-05-13 10:30:47 +02:00
4dd27d6d52
feat: add jikan integration module
2026-05-13 10:30:26 +02:00
83da0b3c25
feat: scaffold fx app and gin server
2026-05-13 10:29:50 +02:00
17b9fd7686
refactor: remove old migrations directory
2026-05-13 10:29:37 +02:00
2167955bb2
feat: setup goose and database module
2026-05-13 10:29:34 +02:00