jxxghp
6d4ce83837
fix(types): clear host mypy debt and prevent typing regressions
...
严格检查全部宿主源码,清零类型错误预算并移除按模块类型豁免。
按原因、所属方法、错误码及语法指纹锁定必要兼容例外和站点类型桩,
CI 阻断新增忽略、检查范围退化、本地桩替代真实接口及新的类型错误。
修复空值、异步和供应方类型边界,保持插件与 API 兼容合同,
并补充存储、订阅、通知、Agent 和工作流边界的回归覆盖。
2026-10-21 22:03:18 +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
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
jxxghp
5810f6bc2b
refactor(application): filter_rules.py 更名 rules.py 并合并 RuleHelper
...
规则域收敛为单一事实来源 app/application/rules.py:
- filter_rules.py 更名为 rules.py(内置规则集 + RuleParser)
- filter.py 仅含 66 行 RuleHelper(用户规则组配置访问),并入 rules.py
- 同步更新 5 处引用方导入、nettest stub 目标与架构文档
- 兼容映射 app.helper.rule 指向新路径,legacy 导入仍可用
2026-08-16 17:13:51 +08:00
InfinityPacer
24671f8f18
refactor(runtime): lazily activate host modules ( #6331 )
2026-08-16 16:07:38 +08:00
jxxghp
02f0dd0b9a
refactor(architecture): 修复模块依赖违规并强化架构守护
...
- 字幕编排上移 DownloadChain.download_site_subtitles,SubtitleModule 仅保留站点链接解析
- TransferChain.recommend_name 上移 TV episodes_info 获取,filemanager 模块不再导入 TmdbChain
- endpoint 穿透修复:WXBizMsgCrypt3 迁至 adapters/external/wechat_crypt.py;
music/tmdb 缓存管理、listenbrainz 常量、TMDbException、WechatClawBot 辅助统一经 chain 包装
- RuleParser 与 builtin_rules 合并为 application/filter_rules.py;
fsproxy/fsworker 迁至 adapters/system/
- chain/__init__.py 删除 qbittorrentapi/transmission_rpc 导入,消除后端协议类型泄漏
- 架构守护测试新增三项检查:模块间隔离、入口层穿透、下载器 SDK 泄漏
- 文档同步:05-architecture.md 记录 DB/Oper 聚合例外与迁移文件位置,AGENTS.md 更新所有权表
2026-08-16 04:59:17 +08:00
jxxghp
96118e73e7
refactor(string): split utilities by responsibility
2026-08-15 08:03:55 +08:00
jxxghp
369d7d6448
refactor: reorganize backend module boundaries
2026-08-14 19:53:33 +08:00
jxxghp
7b3444c366
refactor backend module architecture
2026-08-14 15:45:38 +08:00
jxxghp
75e56d8e9a
feat(music): add audio quality workflow
2026-08-10 10:23:02 +08:00
InfinityPacer
893269f8c1
fix(modules): serialize configuration reload lifecycle ( #6122 )
2026-07-15 17:28:49 +08:00
jxxghp
1b12d7664e
fix: avoid cnsub matching file size unit
2026-07-06 11:58:03 +08:00
InfinityPacer
544ed6d84d
fix: recognize HDR Vivid resources ( #6007 )
2026-06-26 14:41:41 +08:00
jxxghp
3c74f1bf58
Add Rust filter trace logging support
2026-06-21 21:25:50 +08:00
InfinityPacer
e02cebe16c
fix(tests): stabilize messaging shutdown ( #5979 )
2026-06-21 07:37:47 +08:00
jxxghp
6430b864b4
fix: import filter module dependencies
2026-05-24 08:02:40 +08:00
jxxghp
d6472088cb
fix: correct typo in import for clear_rust_parse_options_cache
2026-05-23 20:42:52 +08:00
jxxghp
0c133b7ccd
feat: add global RUST_ACCEL toggle to enable/disable rust acceleration at runtime
...
- Introduce RUST_ACCEL config to control all rust fast paths
- Fallback to Python implementations when disabled, preserving filter semantics
- Expose rust acceleration status in system info API
- Update CLI docs to reflect new toggle
- Add tests for runtime switch and fallback behavior
2026-05-23 20:35:58 +08:00
jxxghp
0bf228d29d
perf: optimize rust acceleration paths
...
Rust vs Python benchmark results:
- RSS: Rust 0.299 ms/loop vs Python 7.913 ms/loop, 26.47x faster
- Filter: Rust 12.740 ms/loop vs Python 57.187 ms/loop, 4.49x faster
- MetaInfo: Rust 64.680 ms/loop vs Python 316.158 ms/loop, 4.89x faster
- Indexer agsvpt: Rust 145.76 ms vs Python 3686.50 ms, 25.29x faster
- Indexer pttime: Rust 166.51 ms vs Python 4019.87 ms, 24.14x faster
- Indexer chdbits: Rust 161.17 ms vs Python 3604.28 ms, 22.36x faster
- Indexer iptorrents: Rust 77.82 ms vs Python 17615.52 ms, 226.36x faster
Validation:
- cargo fmt/check/test for rust/moviepilot_rust
- pytest Rust-related coverage: tests/test_rust_accel.py tests/test_torrent_filter.py tests/test_metainfo.py tests/test_indexer_spider_search_url.py tests/test_workflow_fetch_rss.py
- tests/run.py legacy suite
- pylint app/ --errors-only
2026-05-23 19:41:18 +08:00
jxxghp
7cbfeb2377
refactor: slim rust acceleration surface
2026-05-23 09:17:32 +08:00
jxxghp
bd4d493f34
feat: add Rust acceleration for core parsing
2026-05-22 19:58:04 +08:00
jxxghp
51229204c9
perf: optimize torrent filtering
2026-05-15 16:55:42 +08:00
jxxghp
924d54dfd3
perf(search): 按站点并行过滤搜索结果
2026-05-05 09:01:18 +08:00
jxxghp
2d412cae1c
style: improve log formatting for torrent publish time checks in FilterModule
2026-04-30 16:28:28 +08:00
jxxghp
28a2386f2f
feat: add agent tools for querying and managing filter rules and rule groups
...
- Add tools for querying built-in and custom filter rules, and for adding, updating, and deleting custom rules and rule groups
- Refactor filter module to use shared builtin rule definitions
- Enhance rule group querying to include syntax guidance and usage references
- Add unittests for agent filter rule tools registration and parsing logic
2026-04-30 12:56:38 +08:00
jxxghp
6065c29891
Revert "Merge pull request #5573 from wikrin/refactor-static-methods-conversion"
...
This reverts commit b8fc20b981 , reversing
changes made to e09cfc6704 .
2026-03-14 18:21:31 +08:00
Attente
b89825525a
refactor(helper): 将DirectoryHelper、RuleHelper和TorrentHelper方法改为静态方法
...
- 移除不必要的实例化操作,直接使用类方法
2026-03-13 19:50:10 +08:00
Attente
8658942385
feat(filter): 添加配置监听和改进中字过滤规则
2026-01-25 01:06:50 +08:00
jxxghp
d523c7c916
fix pydantic
2025-11-01 09:51:23 +08:00
Attente
0f0c3e660b
style: 清理空白字符
...
移除代码中的 trailing whitespace 和空行缩进, 提升代码整洁度
2025-06-29 22:49:58 +08:00
jxxghp
7c76c3ccd6
rollback #4296
2025-05-18 21:40:06 +08:00
Pollo
b97dbd2515
fix: 优化 Blu-ray 匹配规则
2025-05-17 17:56:05 +08:00
jxxghp
71c29ea5e7
fix ide warnings
2025-03-09 18:35:52 +08:00
Ray
79d70c9977
fix: 标签为"官组"的种子应识别为官种
2025-03-05 22:10:28 +08:00
Attente
5b66803f6d
fix: 修复订阅识别词在下载阶段不生效的问题
...
- 将`季集匹配`从`优先级规则组匹配模块`移至`种子帮助类`
- - `FilterModule.__match_season_episodes()` ==> `TorrentHelper.match_season_episodes()`
- - 确保需要`订阅识别词` `偏移季集`的种子能够正确匹配
2025-01-15 03:43:50 +08:00
Attente
73e4596d1a
feat(filter): add publish time filter for torrents
...
- 在 `TorrentInfo` 类中添加 `pub_minutes` 方法以计算自发布以来的`分钟`数
- 在 FilterModule 中实现发布时间过滤
- 支持发布时间的单值和范围比较
2024-12-10 23:36:54 +08:00
Aqr-K
825fc35134
feat(modules): 增加子级 type 分类。
...
- 在 `types` 里,针对各个模块的类型进行子级分类。
- 为每个模块统一添加 `get_subtype` 方法,这样一来,能更精准快速地区分与调用子类的每个模块,又能获取 ModuleType 所规定的分类以及对应存在的子模块类型支持列表,从而有效解决当下调用时需繁琐遍历每个 module 以获取 get_name 或 _channel 的问题。
- 解决因消息渠道前端返回所保存的 type 与后端规定值不一致,而需要频繁调用 _channel 私有方法才能获取分类所可能产生的问题。
2024-12-03 14:57:19 +08:00
jxxghp
9b2fccee01
feat:剧集文件大小过滤按平均每集大小
2024-11-09 18:01:50 +08:00
jxxghp
76d939b665
更新 __init__.py
2024-10-30 07:16:44 +08:00
jxxghp
bbac709970
更新 __init__.py
2024-10-26 14:17:26 +08:00
thsrite
e58911397a
fix dc3240e9
2024-10-25 19:06:32 +08:00
thsrite
dc3240e90a
fix 种子过滤包含规则
2024-10-25 16:05:54 +08:00
thsrite
72b955ebae
fix
2024-10-22 16:53:17 +08:00
thsrite
be09d5e65d
fix 修复自定义规则包含、过滤
2024-10-22 16:47:31 +08:00
jxxghp
363f12ed5a
refactor:Module加入执行优先顺序
2024-10-19 19:31:25 +08:00
jxxghp
603ab97665
add ModuleType Schema
2024-10-12 11:50:00 +08:00
jxxghp
1cef5e43e3
fix rule load
2024-09-26 12:36:56 +08:00
jxxghp
5b1d111a97
更新 __init__.py
2024-09-25 22:35:18 +08:00
jxxghp
e1b557f681
更新 __init__.py
2024-09-25 22:25:27 +08:00