InfinityPacer
f64030a074
fix(imports): use concrete modules for internal symbols ( #6427 )
2026-08-23 21:28:37 +08:00
jxxghp
baf4e883b2
refactor: route storage adapter settings through runtime
2026-08-23 03:25:08 +08:00
jxxghp
dd6405389c
refactor: route storage module settings through runtime
2026-08-23 03:12:51 +08:00
jxxghp
5128ae9e1e
refactor: 推进后端分层架构治理
2026-08-18 00:29:14 +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
kami
626e6cb472
fix(storage): refresh 115 upload token when SecurityTokenExpired ( #6296 )
2026-08-13 15:23:29 +08:00
Aqr-K and Aqr-K
a2e70b443d
fix(monitor,transfer): 修复 FUSE 挂载无响应导致的监控冻死、整理链锁死与漏件 ( #6276 )
...
* wip(v3): 移植监控与整理韧性修复到 v3 基线
包含:监控看门狗隔离/挂载探测、整理队列持久化、文件系统子进程代理、
写入原子化。迁移重挂到 v3 链 8a4c7e1d2f90 -> 7f5c1d2e3a4b -> e3d9f4b7c806。
tmdb 相关测试尚未通过,待定位。
* fix(v3): 修正移植引入的 16 项测试失败
- poller.py:合并时我方保留的行仍用旧变量名 merged_snapshot,而 v3 已统一
改名为 current_snapshot,导致 NameError 被外层 except 吞掉、快照从未保存
- smb.py:采纳 f-string 拆分写法,恢复 Python 3.11 可解析
- dispatcher 测试:历史查重由 _should_skip_by_history 统一承担,mock 点随之调整
- tmdb 缓存测试:补充 v3 新增的 media_source/media_id 字段
- tmdb 重试测试:为 fake 补充 match_multi/async_match_multi
尚余 3 项与 v3 识别流程的连接失败处理有关,待单独判断。
* fix(v3): 测试适配 v3 的 media_source/media_id 重构
v3 将媒体标识从 tmdbid 统一重构为 media_source + media_id,recognize_media
的 tmdbid 参数已被 **kwargs 静默吞掉——传了也不生效,流程会误降级到名称搜索。
tmdb 重试用例改用新参数后恢复正确路径。
同时修正 fake 的 match_multi 语义:真实实现(tmdbapi.match_multi)吞掉所有
异常并返回 None,连接失败与「未找到」在该路径上本就不可区分,fake 需保持一致。
至此移植引入的 19 项失败全部清零。
---------
Co-authored-by: Aqr-K <Aqr-K@users.noreply.github.com >
2026-08-13 08:19:54 +08:00
jxxghp
5c7e09d407
fix(monitor): 修正远程快照文件数量累计
2026-08-09 16:37:25 +08:00
jxxghp
964e3c0b8e
test: 补充 AListGo 与特典整理回归验证
2026-08-09 14:53:13 +08:00
okatu-loli
2bf2d89c52
fix(storages): 令牌缓存失效范围限定为当前存储凭据
2026-08-09 14:48:18 +08:00
okatu-loli
7650ec5cef
feat(storages): 新增 AList 存储类型
2026-08-09 14:48:18 +08:00
jxxghp
d8adb4fbfe
fix(u115): handle missing path response
2026-08-03 08:16:45 +08:00
Aqr-K
cf80b551f9
fix(monitor): 目录监控自愈、快照语义修正与覆盖保护闭环 ( #6210 )
2026-07-30 06:53:52 +08:00
jxxghp
7a5e565b15
fix(storage): 保留目标目录继承权限 ( #6189 )
2026-07-26 09:12:35 +08:00
zangse
c6611f6210
fix(system): add opt-in Btrfs FSID space deduplication ( #6141 )
2026-07-22 17:55:17 +08:00
jxxghp
93e907d032
fix: remove openlist directory via fs remove
2026-07-05 17:24:44 +08:00
jxxghp
68f18db374
Handle invalid UTF-8 with replacement decoding
2026-06-21 09:56:34 +08:00
jxxghp
a0b3800f6b
fix: prevent cloud storage download path traversal
2026-06-05 17:43:06 +08:00
Album
a9b1f7e9c9
fix(alist): support openlist rapid upload headers ( #5897 )
2026-06-05 06:50:20 +08:00
jxxghp
2b2e088784
fix: improve u115 multipart upload handling
2026-05-27 15:02:03 +08:00
jxxghp
db8363fee1
fix(openlist): request full directory pages
2026-05-26 18:12:10 +08:00
jxxghp
79539760da
fix: bound long-lived cache state
2026-05-24 18:03:42 +08:00
jxxghp
fd4d162287
fix: respect OpenList directory path contract
2026-05-20 22:28:38 +08:00
jxxghp
e00aa42f94
fix: prevent duplicate transfer uploads
2026-05-20 16:39:07 +08:00
jxxghp
72ead2970c
fix: tolerate delayed OpenList metadata
2026-05-20 15:53:56 +08:00
jxxghp
3ec0964a01
fix: handle OpenList delayed transfer metadata
2026-05-20 13:08:45 +08:00
DDSRem and Claude Sonnet 4.6
1af3a0ef59
fix: handle None items in alipan list to prevent TypeError ( #5765 )
...
When the Aliyun Drive API returns an error response (e.g. UserNotAllowedAccessDrive), resp.get("items") is None, causing len() to raise TypeError. Extract items with a safe default to fix the crash and avoid a potential infinite loop.
Fix https://github.com/jxxghp/MoviePilot/issues/5664
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 19:09:45 +08:00
jxxghp
ffbe348d66
fix(openlist): paginate Alist directory listings
...
Fetch all OpenList/AList fs/list pages when using the default per_page=0 to avoid truncating directories at 200 entries. Add an isolated regression test for the auto-pagination behavior.
Fixes #5723
2026-05-07 13:09:28 +08:00
笨笨
6f6fcc79f2
fix: serialize rclone folder creation during concurrent transfers
2026-04-20 21:34:35 +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
jxxghp
f38cb274e4
Revert "refactor(helper): 将LLMHelper StorageHelper的相关方法改为静态方法,移除实例调用"
...
This reverts commit 9f381b3c73 .
2026-03-14 18:19:47 +08:00
jxxghp
2ce2a3754c
Merge pull request #5576 from wikrin/refactor-static-methods
2026-03-14 17:59:48 +08:00
jxxghp and gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
77a0b38081
更新 alipan.py
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-14 13:25:00 +08:00
Tejas Attarde
14c3d66ce6
perf(modules): set a timeout on alipan HTTP calls
2026-03-14 00:23:45 -04:00
Attente
9f381b3c73
refactor(helper): 将LLMHelper StorageHelper的相关方法改为静态方法,移除实例调用
2026-03-14 10:29:37 +08:00
Attente
b89825525a
refactor(helper): 将DirectoryHelper、RuleHelper和TorrentHelper方法改为静态方法
...
- 移除不必要的实例化操作,直接使用类方法
2026-03-13 19:50:10 +08:00
wumode
600b6af876
fix(openlist): transfer queue blocking
2026-03-06 23:21:43 +08:00
Shawn Lu and Claude Opus 4.6
03d118a73a
fix: 修复阿里云盘目录监控快照无法检测文件的问题
...
1. 为阿里云盘添加 ALIPAN_SNAPSHOT_CHECK_FOLDER_MODTIME 配置(默认 False)
- 阿里云盘目录的 updated_at 不会随子文件变更而更新,导致增量快照
始终跳过目录,快照结果为空
- 与 Rclone/Alist 保持一致的配置模式
2. 移除 snapshot() 中文件级 modify_time 过滤
- 原逻辑:仅包含 modify_time > last_snapshot_time 的文件
- 问题:首次快照建立基准后,save_snapshot 将 timestamp 设为
max(modify_times),后续快照中未变更的文件因 modify_time 不大于
timestamp 而被排除,导致 compare_snapshots 无法检测到任何变化
- 此外当 last_snapshot_time 为 None 时,比较会触发 TypeError
并被静默捕获
- 修复:始终包含所有遍历到的文件,由 compare_snapshots 负责变化检测
目录级优化仍由 snapshot_check_folder_modtime 控制
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 23:43:21 +08:00
jxxghp
fd92f986da
Merge pull request #5504 from DDSRem-Dev/fix_smb_alipan
2026-02-22 16:10:08 +08:00
DDSRem
e77530bdc5
fix(storages): download directory concatenation error
2026-02-22 12:35:27 +08:00
DDSRem
8c62df63cc
fix(u115): download directory concatenation error
...
fix: https://github.com/jxxghp/MoviePilot/issues/5429
2026-02-22 12:22:58 +08:00
DDSRem
d2c023081a
fix(openList): openList file upload and retrieval errors
...
fix https://github.com/jxxghp/MoviePilot/issues/5369
fix https://github.com/jxxghp/MoviePilot/issues/5038
2026-02-22 12:05:14 +08:00
DDSRem
a1829fe590
feat: u115 global rate limiting strategy
2026-02-04 23:24:14 +08:00
DDSRem
d38b1f5364
feat: u115 support oauth
2026-01-29 22:14:10 +08:00
景大侠
a2359a1ad2
fix(u115): 创建目录误报失败
...
- 解析响应时忽略20004错误码
- 根目录创建目录会报错ValueError
2026-01-24 17:48:53 +08:00
jxxghp
68402aadd7
fix:去除文件操作全局锁
2026-01-21 08:31:51 +08:00
stkevintan
ba415acd37
add hard link support for smb
2025-11-27 18:21:54 +08:00