jxxghp
baf8850d63
refactor(api): standardize responses and restore media config contracts
2026-08-12 23:15:13 +08:00
jxxghp
ca32922a7f
refactor(media): unify media identity and chain responsibilities
2026-08-12 18:31:09 +08:00
jxxghp
8bf2f601a6
refactor(media): unify source identity and music browsing
2026-08-12 12:56:40 +08:00
jxxghp
97dba2a8ae
feat: unify media recognition and music lifecycle
2026-08-12 06:51:58 +08:00
jxxghp
3f1b0cdb05
feat(music): 支持多源识别与元数据刮削
2026-08-11 23:34:00 +08:00
jxxghp
d7cf853bc8
fix(search): 支持单次搜索启用多个媒体数据源,合并显示所有源结果 ( #6270 )
...
- 新增 is_media_source_enabled/is_media_source_selected,请求级 source 支持逗号分隔多数据源,缺省回退全局 SEARCH_SOURCE 配置
- 四个媒体模块的搜索/人物/合集方法统一接入多源判断
- 补充多数据源搜索相关测试
2026-08-11 21:06:52 +08:00
jxxghp
c976741574
feat(transfer): control mounted directory cleanup
2026-07-30 17:45:13 +08:00
Aqr-K
1a528c7803
fix(http): AsyncRequestUtils 代理请求按 host 熔断降级 h2 隧道 ( #6208 )
2026-07-28 18:54:16 +08:00
InfinityPacer
8788dae34b
revert(login): remove anonymous wallpaper proxy ( #6201 )
2026-07-27 13:48:52 +08:00
InfinityPacer
bb00814d7a
feat(login): 提供无状态签名同源壁纸代理 ( #6200 )
2026-07-27 12:13:38 +08:00
zangse
c6611f6210
fix(system): add opt-in Btrfs FSID space deduplication ( #6141 )
2026-07-22 17:55:17 +08:00
jxxghp
3b709b7f2e
feat: unify media source identity flow ( #6129 )
2026-07-21 20:20:09 +08:00
jxxghp
e3f80af74f
feat: expand metadata sources and media server sync ( #6129 )
2026-07-21 11:34:18 +08:00
jxxghp
31544629b4
Add autonomous Agent task scheduling
2026-07-19 20:19:06 +08:00
InfinityPacer
a4335fe753
fix(lifecycle): harden application shutdown ( #6125 )
2026-07-16 06:24:31 +08:00
InfinityPacer
f814c271cc
refactor(runtime): tighten resource cleanup and test isolation ( #6116 )
2026-07-14 16:03:29 +08:00
InfinityPacer
d977e4c48a
fix(security): require signed subtitle downloads ( #6055 )
2026-07-05 09:43:58 +08:00
jxxghp
d8f7fa70af
fix: normalize question marks in title matching
2026-07-02 08:51:16 +08:00
jxxghp
8bf826faa0
fix(dashboard): report application memory accurately
2026-06-29 07:37:03 +08:00
jxxghp
494f809ef0
Refine transfer history batch actions
2026-06-29 07:07:33 +08:00
jxxghp
9b1bdb0cb2
feat(dashboard): add system summary endpoint and monthly media statistics
2026-06-28 17:49:09 +08:00
InfinityPacer
52c5f2900f
fix(rss): decode XML feeds before parsing ( #6004 )
2026-06-26 06:37:18 +08:00
InfinityPacer
0c53fb86fd
feat(deps): add uv-backed package installer ( #5987 )
...
* feat(deps): add uv-backed package installer
* feat(deps): support package cache root
2026-06-23 13:36:15 +08:00
jxxghp
3c74f1bf58
Add Rust filter trace logging support
2026-06-21 21:25:50 +08:00
jxxghp
cba52c57e6
修复 RAR 字幕包下载识别
2026-06-10 08:46:10 +08:00
jxxghp
210aac0937
feat: add exact subtitle search
2026-06-09 17:04:17 +08:00
ui_beam
f4011d3ac2
fix: 修复前端代理服务器设置清空保存后,httpx 持续报 `Unknown scheme for proxy URL ( #5899 )
2026-06-05 15:20:31 +08:00
DDSRem
df75f42753
fix: retry stale keep-alive requests ( #5893 )
2026-06-04 06:55:03 +08:00
InfinityPacer
f4ca4120bc
fix(image-proxy): 阻断日志输出诊断原因并合并重复告警 ( #5858 )
2026-05-29 14:14:16 +08:00
InfinityPacer
7ab1a668cb
perf(security): make image proxy signature stable to enable client caching ( #5835 )
2026-05-25 16:46:29 +08:00
InfinityPacer
d57deb1df1
fix(security): release SSRF DNS inflight lock outside async with block ( #5834 )
2026-05-25 16:45:32 +08:00
InfinityPacer
01c3451679
perf(system): async SSRF check with DNS cache for image proxy ( #5832 )
2026-05-25 15:54:02 +08:00
InfinityPacer
98e3ea4e6f
fix(system): allow configured image proxy private ranges ( #5831 )
2026-05-25 14:16:54 +08:00
jxxghp
63b9994b0e
fix: sign media server image proxy URLs
2026-05-25 12:41:55 +08:00
jxxghp
0b7854a0af
fix: block private image proxy targets
2026-05-24 07:18:51 +08:00
jxxghp
0273adc61c
更新 rust_accel.py
2026-05-23 21:19:46 +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
ed0f8c471b
feat: accelerate metainfo parsing with rust
2026-05-23 17:45:39 +08:00
jxxghp
ad38f51d6b
feat: accelerate rss parsing with rust
2026-05-23 16:14:47 +08:00
jxxghp
d1e2881347
feat: accelerate site indexer parsing with rust
2026-05-23 15:59:20 +08:00
jxxghp
134c441754
fix: replace fast jieba dependency
2026-05-23 12:59:33 +08:00
jxxghp
00fc8b2f53
chore: update text processing dependencies
2026-05-23 12:18:59 +08:00
jxxghp
7cbfeb2377
refactor: slim rust acceleration surface
2026-05-23 09:17:32 +08:00
jxxghp
4de4044a3e
feat: accelerate RSS parsing with Rust
2026-05-22 21:31:18 +08:00
jxxghp
bd4d493f34
feat: add Rust acceleration for core parsing
2026-05-22 19:58:04 +08:00
jxxghp
93130baf0a
fix(system): improve error reporting for subprocess failures and add tests for output handling
2026-05-17 19:28:18 +08:00
jxxghp
9128955bf9
fix: preserve scalar items in list flatten
...
Fixes #5705
2026-05-14 22:18:59 +08:00
Aqr-K
0fb11880a4
perf(http): AsyncRequestUtils 默认启用 HTTP/2
...
为 AsyncRequestUtils 增加 http2: bool = True 参数(默认开启),
内部贯穿到 _get_shared_async_transport 与 path C 兜底 AsyncClient。
http2 加入共享 AsyncHTTPTransport 桶 key,让不同 h2 设置自动隔离。
启用基于 TLS ALPN:服务端宣告支持 h2 时切到 HTTP/2 多路复用;
不支持(含明文 HTTP、老 nginx/Apache)透明回落 HTTP/1.1。如个别
站点 h2 实现异常,调用方传 http2=False 单独关闭。
依赖:httpx extras 由 [socks] 扩展为 [socks,http2],引入纯 Python
包 h2 / hpack / hyperframe(无原生扩展)。
真实 TMDB 压测(30 部美剧 × 每部 50 集 = 3060 请求/版本):
HTTP/1.1 52.0s → HTTP/2 27.6s,节省 24.4s(1.88×)。
单请求 p95 由 96.1ms 降至 20.1ms,长尾大幅收敛。
公共 API 表面零变动;插件可按需 http2=False 单点关闭。
2026-05-11 17:15:23 +08:00
jxxghp
1b2433f7c2
feat: implement runtime dependency checks and recovery for plugin installations
2026-05-11 08:54:34 +08:00