Commit Graph

2015 Commits

Author SHA1 Message Date
Estrella Pan
32dcbc53df fix(webui): type template event handlers 2026-07-12 21:07:33 +02:00
Estrella Pan
4cb2b369ab fix(parser): preserve CJK movie words in titles 2026-07-12 21:07:33 +02:00
Estrella Pan
e8bcece42f feat(parser): add selectable preview engine 2026-07-12 21:07:33 +02:00
Estrella Pan
060b602aaf docs(parser): design classic and preview engine switch 2026-07-12 21:07:33 +02:00
Estrella Pan
e744b3601a fix(parser): handle ranges and mixed collections safely 2026-07-12 21:07:33 +02:00
Estrella Pan
8ceec47174 perf(parser): add reproducible tokenizer benchmark 2026-07-12 21:07:33 +02:00
Estrella Pan
56ce4dbe21 docs(parser): record resolved tokenizer architecture 2026-07-12 21:07:33 +02:00
Estrella Pan
274977e665 fix(rss): preserve typed media identities 2026-07-12 21:07:33 +02:00
Estrella Pan
24f060b4b9 refactor(parser): migrate consumers to parsed releases 2026-07-12 21:07:33 +02:00
Estrella Pan
cd9ae7b03b refactor(parser): resolve immutable release candidates 2026-07-12 21:07:33 +02:00
Estrella Pan
5748892c41 docs(parser): design candidate resolver migration 2026-07-12 21:07:33 +02:00
Estrella Pan
0741a23a6a fix(parser): handle movie results in search and rss 2026-07-12 21:07:33 +02:00
Estrella Pan
3f1feb8655 refactor(parser): support generic anime release titles 2026-07-12 21:07:33 +02:00
Estrella Pan
fd1936fb1d refactor(parser): replace regex raw_parser with pipeline tokenizer
Replaces the monolithic regex-based parser with a multi-stage tokenizer
pipeline (normalize, tokenize, classify, resolve). Fixes multiple parsing
bugs: Atlas format (#986), VTuber/Lv2 title splits (#798, #766),
Pre-episode format (#794), western S01E05 format (#764), and separator
dash leaking into titles (#819).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-12 21:07:33 +02:00
Estrella Pan
f75b8e55cd feat(parser): add movie/gekijouban support with full DB model
Add detection and handling for anime movies (剧场版/劇場版) as a
separate entity from TV series. Previously, movies in RSS feeds were
either parsed as episode 0 or skipped entirely.

- Add TokenKind.MOVIE and movie keyword/pattern detection in tokenizer
- Add is_movie flag to Episode dataclass
- Create Movie SQLModel, MovieDatabase with CRUD + TTL cache
- Add migration v10 to create movie table
- Route TitleParser.raw_parser() to return Movie or Bangumi
- Update RSS analyser/engine for movie-aware parsing and downloads
- Add movie save path (no Season subfolder) and rename logic
- Add Movie REST API endpoints (get/update/delete/disable/enable)
- Add 11 tests for movie marker detection and non-movie regression

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-12 21:07:33 +02:00
Estrella Pan
5cc5f57e91 docs: design beta tokenizer lineage integration 2026-07-12 20:44:31 +02:00
Estrella Pan
be8d23c319 fix(webui): hide archived anime from calendar 2026-07-11 12:36:50 +02:00
Estrella Pan
86e39811d1 fix(ci): track e2e fixture and sync beta lock 3.3.4-beta.1 2026-07-10 14:12:00 +02:00
Estrella Pan
5ab2a660ab chore: release 3.3.4-beta.1 2026-07-10 14:05:18 +02:00
Estrella Pan
7319c91c5e style: format log rollover test 2026-07-10 13:51:54 +02:00
Estrella Pan
76b8cfbb6a ci: add hermetic e2e lanes 2026-07-10 13:51:35 +02:00
Estrella Pan
df280c33f7 test: cover e2e runtime retry boundaries 2026-07-10 13:51:17 +02:00
Estrella Pan
7680514a1b test: verify real downloader release flow 2026-07-10 13:50:51 +02:00
Estrella Pan
57d071b2c9 test: cover issue-driven ui regressions 2026-07-10 13:50:36 +02:00
Estrella Pan
8df50b65eb test: add browser auth e2e coverage 2026-07-10 13:50:15 +02:00
Estrella Pan
693044984e test: harden hermetic e2e runtime 2026-07-10 13:49:52 +02:00
Estrella Pan
01270c12c4 fix: preserve movie words in movie titles 2026-07-10 12:56:46 +02:00
Estrella Pan
8ad0762e04 test: add hermetic e2e support services 2026-07-10 12:26:46 +02:00
Estrella Pan
582144b209 fix: make release classification deterministic 2026-07-10 12:05:02 +02:00
Estrella Pan
af0c883326 fix: preserve tmdb language and versioned episodes 2026-07-10 12:04:46 +02:00
Estrella Pan
81cfa41c26 fix: address authentication review findings 2026-07-10 11:56:42 +02:00
Estrella Pan
7c19cb1d2b docs: plan issue-driven e2e implementation 2026-07-10 11:53:27 +02:00
Estrella Pan
d6d409cfd0 docs: design issue-driven e2e coverage 2026-07-10 11:21:39 +02:00
Estrella Pan
f3da5c02b2 docs: address auth design review 2026-07-10 09:40:31 +02:00
Estrella Pan
9561637f45 docs: design auth review fixes 2026-07-10 09:16:56 +02:00
Estrella Pan
52e640cfd5 fix: satisfy auth persistence type checks 2026-07-10 08:35:19 +02:00
Estrella Pan
42ccb7611b feat: persist multi-user authentication 2026-07-10 00:52:39 +02:00
Estrella Pan
6a8eafc9c9 docs: design architecture and auth modernization 2026-07-10 00:32:47 +02:00
Estrella Pan
31edfd84b5 test: satisfy mypy for torrent manager private helper 3.3.3 2026-07-09 18:23:39 +02:00
Estrella Pan
b63f34675b chore: release 3.3.3 2026-07-09 15:44:53 +02:00
Estrella Pan
b279295515 Merge pull request #1070 from EstrellaXD/fix/issues-1067-1068 2026-07-09 15:42:56 +02:00
Estrella Pan
852272b860 Merge pull request #1064 from EstrellaXD/feat/anibt-search-provider 2026-07-09 15:42:45 +02:00
Estrella Pan
0a20eadcec Merge branch '3.3-dev' into main for 3.3.3 2026-07-09 15:42:34 +02:00
Estrella Pan
9586513f6f fix: address recent issue regressions 2026-07-09 14:28:33 +02:00
Estrella Pan
122cf68eac fix(ci): release only from manually pushed tags, never from merged PRs
Merging PR #1063 ("Doc update", 3.3-dev -> main) triggered the stable
release path, which fell back to the raw PR title as the version string
and shipped a Docker image tagged Doc-update as :latest — every
container pulling latest then crashed on SemVer parsing (#1065).

The release trigger is now explicit:
- bare X.Y.Z tag -> stable release, refused unless the tagged commit is
  an ancestor of main
- tag containing alpha/beta -> pre-release (unchanged)
- PR merges only run tests and a docker build test

Also pass head.ref through an env var instead of inlining it in the
script (injection hardening), and take release notes solely from the
changelog file since tag pushes carry no PR body.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jejs2dffkscAbhZkcjZ1oK
2026-07-08 16:25:09 +02:00
Estrella Pan
59ed2d926e feat(searcher): add AniBT as a built-in search provider
Add anibt.net as a first-class default search provider alongside
mikan/nyaa/dmhy, using its RSS search endpoint
(https://anibt.net/rss/magnets.xml?q=%s) with the tmdb parser.

load_provider() now merges newly added built-in sites into an
already-saved config/search_provider.json, so existing installs pick
up new default providers on restart while keeping user-customized
URLs and parsers untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YUaTRVgAxPq6zEiwJHnbiC
2026-07-08 11:27:43 +02:00
Estrella Pan
36f67a805b Merge pull request #1063 from EstrellaXD/3.3-dev
Doc update
2026-07-08 10:20:05 +02:00
Estrella Pan
277f3d740c docs: update configuration guide and locale routing 2026-07-08 10:18:24 +02:00
Estrella Pan
7716986f77 Merge pull request #1060 from EstrellaXD/3.3-dev
3.3.2
3.3.2
2026-07-07 23:06:10 +02:00
Estrella Pan
bccda1186a chore: bump version to 3.3.2
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pz1EmcTPzjgEpkGQWzb8AQ
2026-07-07 22:16:29 +02:00