Commit Graph
100 Commits
Author SHA1 Message Date
jxxghp 2b5528c0ac fix: keep agent typing status while queued 2026-05-22 16:46:25 +08:00
jxxghp cb15b711b9 refactor(subscribe): unify best_version episode upgrade logic and always track downloads in note
- Simplify and centralize logic for filtering TV episodes during best_version (wash) mode, ensuring only episodes with strictly higher priority are considered for upgrade.
- Always update subscribe.note with downloaded episodes regardless of best_version state, ensuring download history is reliably tracked and available for all subscription modes.
- Remove redundant episode_group field from subscribe dict output.
- Refactor search: remove multi-page search logic, streamline concurrent site search for both sync and async paths, and update progress reporting accordingly.
- Remove obsolete tests for allowed_episodes propagation and note tracking, as logic is now unified and simplified.
2026-05-22 12:34:13 +08:00
jxxghp 9319b47fad refactor: use watchfiles for directory monitor 2026-05-22 09:15:18 +08:00
jxxghp 23487b7ae0 更新 version.py 2026-05-22 07:25:19 +08:00
jxxghp fec109712b fix: prevent duplicate Audiences unread messages 2026-05-22 07:23:41 +08:00
jxxghp 737bcb5c62 refactor(agent): move feedback issue flow into skill scripts 2026-05-21 19:22:27 +08:00
jxxghpandClaude Opus 4.7 b6b5529d19 fix: 优化TMDB搜索匹配优先级,title/original_title优先于别名匹配
将搜索结果匹配策略从"逐个结果完整匹配链"改为"两轮优先级匹配":
第一轮遍历所有结果只匹配title/original_title,第二轮再匹配别名译名。
避免排序靠前的无关影片因别名恰好匹配而抢先于正确结果。

Fixes #5719

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 17:47:59 +08:00
jxxghp 4c64b1769d 更新 version.py 2026-05-21 11:52:14 +08:00
jxxghp ee9eced2f1 fix: avoid blocking event loop during plugin install 2026-05-21 09:16:42 +08:00
jxxghp 2109d323ae refactor: merge episode format helper 2026-05-20 22:45:00 +08:00
jxxghp fd4d162287 fix: respect OpenList directory path contract 2026-05-20 22:28:38 +08:00
jxxghp 617692616c fix: build complete transfer result at source 2026-05-20 22:09:57 +08:00
jxxghp 014dc2884c fix: simplify audiences unread pagination 2026-05-20 21:43:20 +08:00
jxxghp 284c272001 fix: improve audiences message pagination 2026-05-20 21:30:14 +08:00
jxxghp 0fb9d18b30 fix: keep transfer event normalization in domain 2026-05-20 21:03:33 +08:00
jxxghp 5d34bc5c56 fix: normalize transfer event targets 2026-05-20 20:49:26 +08:00
jxxghp c52ccaf75f feat: add plugin system version compatibility checks 2026-05-20 19:55:44 +08:00
jxxghp c661bc4764 perf: reduce agent shell command probing 2026-05-20 18:50:59 +08:00
jxxghp 8a375e022c feat: add video bit rename template field 2026-05-20 18:20:18 +08:00
jxxghpandClaude Opus 4.7 7cc037c683 fix: suppress garbled gzip bytes in tmdb error log
When Content-Encoding is present (e.g. gzip), skip logging the raw
response text to avoid unreadable binary output in logs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 18:08:10 +08:00
jxxghp 068d0af4ca fix: remove tmdb manual gzip fallback 2026-05-20 17:09:31 +08:00
jxxghp 8f117d79f2 Revert "fix: handle tmdb gzip json responses"
This reverts commit 47c4e84fdd.
2026-05-20 17:03:47 +08:00
jxxghp 47c4e84fdd fix: handle tmdb gzip json responses 2026-05-20 16:54:01 +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 5fe5523d13 fix: prefer rg in agent prompts 2026-05-20 15:31:02 +08:00
jxxghp 3ec0964a01 fix: handle OpenList delayed transfer metadata 2026-05-20 13:08:45 +08:00
jxxghp a5745af484 fix: restore tmdb trending recommendations 2026-05-20 10:55:01 +08:00
jxxghp c3e4e1a764 fix: decode raw gzip tmdb responses 2026-05-20 10:44:01 +08:00
jxxghp b07c47551c fix: avoid none search keyword for haidan 2026-05-20 09:51:53 +08:00
jxxghp 71dc9df7ff fix: ignore expected module rate limits 2026-05-20 09:38:37 +08:00
jxxghp 6edb627145 fix: handle tmdb unicode decode errors 2026-05-20 09:21:36 +08:00
jxxghp 07f51c5d94 fix: handle invalid tmdb json responses 2026-05-20 09:05:18 +08:00
jxxghp 5d02550874 fix: cache available shell command discovery 2026-05-19 18:45:52 +08:00
jxxghp 2ff6474f0f 更新 version.py 2026-05-19 18:27:48 +08:00
jxxghp c4eb4d9b95 feat: inject available shell commands into agent prompt 2026-05-19 18:16:09 +08:00
jxxghp 7866aee1de fix: stop torrent search paging after short pages 2026-05-19 17:54:39 +08:00
jxxghpandClaude Opus 4.7 f46488cb9c fix: Audiences站点未读消息数解析错误
优先使用Audiences特有的解析逻辑(从"总数/未读数"格式提取真正的未读数),
仅在匹配不到时才fallback到NexusPHP基类的通用正则,避免基类将总消息数
误判为未读数导致发送大量错误通知。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 12:55:39 +08:00
jxxghpandClaude Opus 4.7 34ff80e26c feat: optimize scraping for multi-server compatibility
- Add studio, country, runtime tags to NFO generation
- Fix Fanart naming: showbackground→fanart (recognized by Jellyfin/Emby)
- Add image alias system: backdrop↔fanart, thumb↔landscape
- Merge image sources from all modules instead of first-wins
- Add CLEARART and LANDSCAPE scraping metadata types
- Extend season scraping with backdrop and landscape support

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 12:36:47 +08:00
jxxghp 195e34563d fix: use explicit tmdb locale setting 2026-05-19 11:33:03 +08:00
jxxghp 29dab5a312 fix: improve media image scraping 2026-05-19 10:48:36 +08:00
jxxghp 1f0eeb25e6 feat: add agent cli tools to docker image 2026-05-18 21:20:26 +08:00
jxxghp 3c1ff5242c feat: install ssh client in docker image 2026-05-18 21:16:58 +08:00
jxxghp 9076acc52e feat: add managed agent command sessions 2026-05-18 20:17:59 +08:00
jxxghp bedf06b864 feat: support multi-page resource search 2026-05-18 09:48:43 +08:00
jxxghp cb8636e967 refactor(browser): decouple Playwright types with protocol interfaces and remove direct dependency 2026-05-18 08:46:24 +08:00
jxxghp 36a0d78f08 更新 version.py 2026-05-18 07:29:06 +08:00
jxxghp 6685bd0e0e fix(audiences): correctly filter unread messages by icon class and attributes 2026-05-17 21:52:13 +08:00
jxxghp c857ae3e14 fix(tmdb): remove fallback to TMDB website scraping when API search fails 2026-05-17 19:46:50 +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 3653164924 chore: bump version to v2.12.0 2026-05-17 15:12:01 +08:00
jxxghp ca0127cc87 fix: adapt site imdb search urls 2026-05-17 11:43:50 +08:00
jxxghp 092666f9d2 fix: avoid double episode offset in manual transfer 2026-05-17 08:59:17 +08:00
jxxghp 7b97e2039f fix(nginx): expand SSE configuration to include logging and search stream endpoints 2026-05-17 08:29:57 +08:00
jxxghp e168e31a8f fix: offload subtitle download after add task 2026-05-17 08:26:13 +08:00
jxxghp 3ee601574c fix: reduce low-risk pylint issues 2026-05-17 08:01:39 +08:00
jxxghp 0ee9fec1d2 feat(browser): migrate to CloakBrowser for browser emulation and streamline dependency management
- Replace Playwright-based browser emulation with CloakBrowser as default
- Update config to support CloakBrowser options and humanization presets
- Refactor browser helper to use CloakBrowser context and remove cf_clearance dependency
- Update Dockerfile, entrypoint, and update scripts to install CloakBrowser runtime
- Ensure CloakBrowser kernel is pre-installed during local setup and dependency updates
- Add tests for CloakBrowser integration and legacy compatibility
2026-05-16 20:51:38 +08:00
jxxghp 9069dccb2a fix: parse Audiences unread messages 2026-05-16 16:41:11 +08:00
jxxghp 3c055e2482 fix: avoid tmdb cached response mutation
Fixes #5777
2026-05-16 08:02:18 +08:00
jxxghp 28718094e4 Merge remote-tracking branch 'origin/v2' into v2 2026-05-15 22:43:48 +08:00
jxxghp 9b23265c3b feat(search): cache and expose last search parameters for replay and context retrieval
- Add methods to save and retrieve last search parameters in SearchChain
- Persist search params alongside results for replayable search context
- Add /last/context endpoint to fetch last search results and parameters
- Update tests to cover search param caching logic
- Allow images.tmdb.org in SECURITY_IMAGE_DOMAINS
2026-05-15 22:43:40 +08:00
jxxghp 9f61bce039 更新 version.py 2026-05-15 22:24:41 +08:00
jxxghp 1f49f9b454 fix: normalize downloader return paths
Fixes #5773
2026-05-15 18:15:42 +08:00
jxxghp 51229204c9 perf: optimize torrent filtering 2026-05-15 16:55:42 +08:00
jxxghp 2831eecbeb perf: optimize media recognition internals 2026-05-15 13:37:36 +08:00
jxxghp b2a18f9ae4 feat(message-processing-status): unified processing status indicator for Telegram, Slack, Discord, Feishu
- Add ChannelCapability.PROCESSING_STATUS and capability detection for supported channels
- Implement mark_message_processing_started/finished in Telegram, Slack, Discord, Feishu modules
  - Telegram: manage typing lifecycle with max duration and explicit stop
  - Slack: add/remove reaction as processing indicator
  - Discord: start/stop typing indicator with async task management
  - Feishu: add/remove reaction for processing status
- Refactor message chain to invoke processing status hooks for supported channels
- Ensure processing status is properly finished on sync and async message handling paths
- Add tests for processing status lifecycle and capability detection across channels
2026-05-15 12:45:41 +08:00
jxxghp 5a06e7b8bc fix(uv-pip-compat): bind venv python for more pip commands and add tests for compatibility wrapper 2026-05-15 09:58:30 +08:00
jxxghp f303d9e576 更新 version.py 2026-05-15 06:56:15 +08:00
jxxghp 41da9b62c2 fix: refresh custom placeholders without restart
Closes #5770
2026-05-14 23:04:14 +08:00
jxxghp 9128955bf9 fix: preserve scalar items in list flatten
Fixes #5705
2026-05-14 22:18:59 +08:00
jxxghp f50773711e feat: add support for syncing matching subtitle and audio files with main media during transfer 2026-05-14 21:12:02 +08:00
jxxghp 23784f614b feat: add user-friendly handling for unsupported image input errors in agent execution 2026-05-14 20:36:14 +08:00
jxxghp 7b27b7fd16 feat: add extensible agent audio capabilities 2026-05-14 19:37:13 +08:00
jxxghp 4322f8a3c1 fix: preserve reasoning content for compatible llms 2026-05-14 14:01:53 +08:00
jxxghp 0f3a4e4c15 refactor: rely on transfer chain invariants 2026-05-14 07:55:33 +08:00
jxxghp f4423e121e fix: aggregate metadata scrape events 2026-05-14 07:38:06 +08:00
jxxghp 7b1ece8b83 fix https://github.com/jxxghp/MoviePilot/issues/5663 2026-05-13 21:03:54 +08:00
jxxghp 6d5cda5d51 fix https://github.com/jxxghp/MoviePilot/issues/5663 2026-05-13 21:03:48 +08:00
jxxghp fcf6e14ac9 fix: filter invalid subtitle action links 2026-05-13 17:57:25 +08:00
jxxghp 0959c4ace4 feat: add full-season pack option for TV best-version subscriptions
- Introduce `best_version_full` field to subscribe and subscribehistory models and migration
- Update subscription logic to support only downloading full-season packs when enabled
- Extend CLI, API, and documentation to reflect new option
- Add tests for full-season best-version behavior
2026-05-13 16:53:24 +08:00
jxxghp f0bc1bd681 fix: prevent storage operations in preview mode and add tests for transfer preview logic 2026-05-13 13:39:57 +08:00
jxxghp f8d096f476 fix: 支持飞书语音消息识别 2026-05-13 12:45:32 +08:00
jxxghp b24127e66f fix: map feishu user identity for agent subscribe 2026-05-13 12:14:05 +08:00
jxxghp 35eb8c51a9 chore: bump version to v2.11.2 2026-05-13 11:47:46 +08:00
jxxghp 669ca713cf fix(feishu): add configurable margin to card sections and actions for improved layout with images 2026-05-13 11:43:37 +08:00
jxxghp f2fd28bf4d fix(feishu): place images at top of interactive cards and remove body padding for better visual layout 2026-05-13 11:31:38 +08:00
jxxghp 3852c0e43e feat(feishu): support embedding images in interactive cards and sending mixed image+file messages
- Enhance Feishu card builder to embed images using remote URLs or uploaded files
- Add logic to send image card first, then file attachment when both image and file are present
- Update card schema to 2.0 and use new button behaviors for callbacks and URLs
- Improve callback data extraction for both new and legacy card actions
- Extend tests to cover image embedding, mixed messages, and new card structure
2026-05-13 11:14:11 +08:00
jxxghp 6fb6996d81 fix: ensure stop_streaming waits for inflight initial flush before final edit; improve message edit/delete return types and logging
- Update stop_streaming logic to await inflight initial flush task, preventing duplicate message sends on stream stop
- Change message edit/delete methods to return Optional[bool] for clearer channel mismatch handling
- Refine Feishu logging to include message_id instead of full data object
- Suppress allowed_objects warnings in __init__.py
- Add test to verify stop_streaming waits for inflight flush before final edit
- Update .pylintrc to use 'E' for error enabling
2026-05-13 10:11:31 +08:00
jxxghp 4c16704ca2 feat(feishu): add info logging for successful message and reply responses 2026-05-13 08:53:39 +08:00
jxxghp f017eaedcc feat: add logging for Feishu streaming card updates and handle update failures more explicitly 2026-05-13 08:44:57 +08:00
jxxghp 19526146c5 docs: update docstrings for message metadata and reply fields; fix markdown capability check in format instructions; improve streaming card update logic in Feishu 2026-05-13 08:36:27 +08:00
jxxghp 7b4cb2097b refactor(feishu): promote download helper methods to public, update call sites and tests 2026-05-13 08:19:16 +08:00
jxxghp b6062a9ce2 fix(feishu): unconditionally inc streaming sequence to prevent locking; send fallback as normal msg 2026-05-13 08:08:59 +08:00
jxxghp ea8a90aa0a fix(feishu): handle more IM websocket events 2026-05-13 07:10:44 +08:00
jxxghp fa939dfbe6 fix(agent): reply Feishu agent streams with cards 2026-05-13 06:56:03 +08:00
jxxghp 77aa65bfdc fix(agent): route streaming finalization through channel modules 2026-05-13 00:50:53 +08:00
jxxghp d86d24fc4f feat(feishu): enhance message handling with file and voice support, add reaction management 2026-05-13 00:34:03 +08:00
jxxghp 0989439d25 feat(feishu): enhance message handling with file and voice support, add reaction management 2026-05-13 00:07:36 +08:00
jxxghp a46ce24691 feat(venv): add uv compatibility for pip commands and enhance virtual environment setup 2026-05-12 23:01:27 +08:00
jxxghp 57bb67e547 feat(feishu): enhance message target resolution and add user ID type handling 2026-05-12 22:39:10 +08:00