319 Commits

Author SHA1 Message Date
jxxghp
e1b0d5b4bf fix(indexer): identify HDDolby API connection failures (#7164) 2026-10-23 21:04:49 +08:00
jxxghp
4d32f25fe4 fix(indexer): honor HDDolby API resource URL (#7158) 2026-10-23 17:48:59 +08:00
Aqr-K
598d1663b1 fix(download): preserve protocol failures and isolate site updates (#7143)
* fix(download): preserve protocol failures and isolate site updates

* test: cover tracker token lifecycle and record dependency facts

---------

Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-23 07:22:22 +08:00
jxxghp
6d4ce83837 fix(types): clear host mypy debt and prevent typing regressions
严格检查全部宿主源码,清零类型错误预算并移除按模块类型豁免。
按原因、所属方法、错误码及语法指纹锁定必要兼容例外和站点类型桩,
CI 阻断新增忽略、检查范围退化、本地桩替代真实接口及新的类型错误。

修复空值、异步和供应方类型边界,保持插件与 API 兼容合同,
并补充存储、订阅、通知、Agent 和工作流边界的回归覆盖。
2026-10-21 22:03:18 +08:00
jxxghp
842320a22c fix(site): preserve MTorrent role names and nullable share ratios 2026-10-20 15:39:06 +08:00
GuanAllen
458329b3f7 fix(indexer): 透传 mTorrent、HDDolby、Yema 的站点分类 (#7080)
* fix(indexer): 站点资源页页码归一化并让 mTorrent/HDDolby/Yema 支持分类透传

站点资源页传 1 起始页码,链路按 0 起始处理,mTorrent 再 +1 后请求 pageNumber=2,
导致单页关键词搜索返回空;同时站点页选择的分类没有透传到专站适配器,
Movie/TV 预置分类互相覆盖,分类筛选不生效。

- site.py: page 传入前归一化为 max(page-1, 0)
- indexer: mTorrent/HDDolby/Yema 专站参数补充 cat
- mtorrent.py: search/async_search/__get_params 支持 cat,显式分类优先
- hddolby.py: search/async_search/__get_params 支持 cat,显式分类优先
- yema.py: search/async_search/_prepare_search_requests 支持 cat,显式分类优先

* fix(indexer): preserve browse paging and support category lists

---------

Co-authored-by: GuanAllen <guanyelin@users.noreply.github.com>
Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-10-19 18:33:28 +08:00
DDSRem
e0642eafa7 chore(types): reduce v3 host mypy debt (#7057)
* chore(types): clear AniList endpoint mypy debt

* chore(types): clear Douban endpoint mypy debt

* chore(types): clear recommendation endpoint mypy debt

* chore(types): clear subscription notification mypy debt

* chore(types): clear SDK string compatibility mypy debt

* chore(types): ratchet v3 host mypy across remaining files

* chore(types): reduce v3 host mypy debt and retire ledger

* chore(types): reconcile host snapshot with upstream HTTP pool

* test(types): cover host paths exposed by mypy cleanup
2026-10-18 09:37:49 +08:00
DDSRem
2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
jxxghp
967780db88 fix(types): type indexer spider response boundaries 2026-10-17 18:01:20 +08:00
jxxghp
13ab2f5e9e fix: type Rousi unread message parser 2026-10-17 13:36:25 +08:00
jxxghp
87674768a9 fix(types): govern Bitpt user data contract 2026-10-17 07:15:40 +08:00
jxxghp
031d5dec3d fix(types): govern Zhixing user data contract 2026-10-17 07:00:08 +08:00
jxxghp
bbca548a43 docs(types): remove obsolete parser compatibility note 2026-10-17 01:19:05 +08:00
jxxghp
89bf47c061 refactor(types): align shared contracts for zhixing site parser 2026-10-17 01:18:54 +08:00
jxxghp
62ef4bf51a refactor(types): govern yema site parser 2026-10-17 01:18:52 +08:00
jxxghp
a4710b434d refactor(types): govern unit3d site parser 2026-10-17 01:18:49 +08:00
jxxghp
767aa8896f refactor(types): govern torrent_leech site parser 2026-10-17 01:18:47 +08:00
jxxghp
d82f30a43f refactor(types): govern tnode site parser 2026-10-17 01:18:45 +08:00
jxxghp
18dd8d23cf refactor(types): align shared contracts for sunnypt site parser 2026-10-17 01:18:42 +08:00
jxxghp
5523a3db8e refactor(types): govern small_horse site parser 2026-10-17 01:18:40 +08:00
jxxghp
13a0b2e7a2 refactor(types): align shared contracts for rousi site parser 2026-10-17 01:18:38 +08:00
jxxghp
1ed776333e refactor(types): govern nexus_rabbit site parser 2026-10-17 01:18:35 +08:00
jxxghp
2bec21864d refactor(types): govern nexus_project site parser 2026-10-17 01:18:32 +08:00
jxxghp
66a5d81109 refactor(types): govern nexus_php site parser 2026-10-17 01:18:30 +08:00
jxxghp
92f2990c52 refactor(types): govern nexus_hhanclub site parser 2026-10-17 01:18:28 +08:00
jxxghp
1eaef2aee8 refactor(types): govern nexus_audiences site parser 2026-10-17 01:18:26 +08:00
jxxghp
9d36adce97 refactor(types): govern mtorrent site parser 2026-10-17 01:18:23 +08:00
jxxghp
9844b80884 refactor(types): govern ipt site parser 2026-10-17 01:18:20 +08:00
jxxghp
dc83ab9adf refactor(types): govern hddolby site parser 2026-10-17 01:18:17 +08:00
jxxghp
9b35d01582 refactor(types): govern gazelle site parser 2026-10-17 01:18:15 +08:00
jxxghp
1e7dd5d864 refactor(types): govern file_list site parser 2026-10-17 01:18:12 +08:00
jxxghp
8de055c73e refactor(types): govern discuz site parser 2026-10-17 01:18:10 +08:00
jxxghp
8fceb4d40f refactor(types): align shared contracts for bitpt site parser 2026-10-17 01:18:08 +08:00
jxxghp
1006c709d8 refactor(types): govern shared site parser contracts 2026-10-17 01:14:46 +08:00
Opportunity
5482415697 fix(indexer): normalize Audiences user levels (#7027) 2026-10-16 22:08:02 +08:00
Opportunity
b8eb66521b fix(indexer): 修复 NexusPHP 用户流量详情表格兜底解析 (#7008) 2026-10-15 20:30:23 +08:00
Opportunity
5e476e2419 fix(indexer): 修复 Discuz 用户分享率解析 (#7006) 2026-10-15 13:01:57 +08:00
jxxghp
99ef7e508b fix(indexer): support custom seeding and Unit3D bonus pages 2026-10-12 08:36:19 +08:00
freeman
f3ad81b39e style: apply safe ruff auto-fixes and exempt startup late imports
Run `ruff check app tests scripts --fix` with the configured rule set
(E4/E7/E9/F/I): import sorting (I001), f-strings without placeholders
(F541), lambda/variable/unused-import cleanups that ruff marks safe.
Nine files whose only ruff debt sits next to pre-existing pylint
import-resolution errors (lazy exports, sys.path script imports) or
whose "unused" imports are reached through attribute access by tests are
left untouched so the changed-file pylint gate and the benchmark tests
stay green; their diagnostics remain in the baseline.

app/startup/lifecycle/__init__.py and app/main.py import business
modules after cache composition, import-path and stdio setup on purpose
(the source comments document the contract), so declare E402
per-file-ignores for them instead of adding per-line noqa.

Ruff ratchet watermark drops from 498 to 100; sync the baseline fixture
and the optimization checklist figure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 13:29:09 +08:00
WenGuoyin
e19076f482 feat(indexer): 适配 Milkie 站点搜索与连通测试
- 新增 MilkieSpider:基于 milkie.cc JSON API(x-milkie-auth 认证)的
  种子搜索与浏览,支持关键字分类收敛、服务端翻页、免费因子与
  媒体类型映射,下载链接按 API Key URL 编码拼接
- 注册 SPIDER_PARSER_CLASSES 与专用搜索参数投影
- SiteChain 新增 milkie.cc 连通性测试,401/403 判定 API Key 失效
- 补充 MilkieSpider 单元测试与同步异步参数一致性用例,同步依赖基线
2026-10-08 17:18:10 +08:00
jxxghp
656e2852f7 fix(indexer): paginate keyword results without server page support
Refs #6911
2026-10-08 13:46:57 +08:00
ChantXu64
e5e2558585 feat(search): 订阅补全逐页搜索、断点续搜与资源页手动分页 (#6907) 2026-10-07 14:40:55 +08:00
jxxghp
43edef140f fix(indexer): fetch TNode current user before requiring an id (#6895) 2026-10-06 07:40:06 +08:00
jxxghp
378944aeba fix(indexer): support XML feeds in site search 2026-10-03 23:47:04 +08:00
jxxghp
97b251ed72 chore(parser): preserve existing ruff baseline 2026-10-02 17:04:41 +08:00
jxxghp
e1d1de1ee7 fix(parser): keep Unit3D username as user id 2026-10-02 17:00:41 +08:00
jxxghp
ef967e68e7 fix(indexer): satisfy subtitle API type gates 2026-10-01 12:44:03 +08:00
jxxghp
58ec86b586 fix(indexer): use M-Team subtitle search API 2026-10-01 12:29:28 +08:00
Aqr-K
f4a68f360d fix(indexer): 站点搜索兜底失败信息附带状态码与页面标题 (#6819) 2026-09-29 06:57:10 +08:00
jxxghp
05a53657a6 fix(indexer): parse PterClub seeding stats 2026-09-23 16:15:19 +08:00