fix(agent): preserve episode lock on unchanged totals (#6271)

This commit is contained in:
InfinityPacer
2026-08-11 23:17:21 +08:00
committed by GitHub
parent d7cf853bc8
commit 1197ece12b
4 changed files with 154 additions and 2 deletions

View File

@@ -213,6 +213,8 @@ class QuerySubscribesTool(MoviePilotTool):
).model_dump(
include=set(QUERY_SUBSCRIBE_OUTPUT_FIELDS), exclude_none=True
)
# 手动总集数是运行锁状态,不属于公共订阅写入 Schema查询时直接从实体读取。
payload["manual_total_episode"] = subscribe.manual_total_episode or 0
payload["type"] = media_type_to_agent(payload.get("type"))
if payload["type"] == "music" and not payload.get("music_type"):
payload["music_type"] = "recording"

View File

@@ -221,7 +221,7 @@ class UpdateSubscribeTool(MoviePilotTool):
subscribe_dict["season"] = season
# 集数相关
if total_episode is not None:
if total_episode is not None and total_episode != subscribe.total_episode:
subscribe_dict["total_episode"] = total_episode
# 如果总集数增加,缺失集数也要相应增加
if total_episode > (subscribe.total_episode or 0):
@@ -346,6 +346,7 @@ class UpdateSubscribeTool(MoviePilotTool):
"season": updated_subscribe.season,
"state": updated_subscribe.state,
"total_episode": updated_subscribe.total_episode,
"manual_total_episode": updated_subscribe.manual_total_episode,
"lack_episode": updated_subscribe.lack_episode,
"start_episode": updated_subscribe.start_episode,
"quality": updated_subscribe.quality,