fix(api): satisfy complexity ratchet

This commit is contained in:
jxxghp
2026-09-04 18:30:05 +08:00
parent f5f534dcad
commit 6ac16b8b24
4 changed files with 44 additions and 64 deletions
+39 -41
View File
@@ -77,6 +77,43 @@ def _public_transfer_result(data: dict[str, Any]) -> dict[str, Any]:
return result return result
def _build_failure_preview_item(file_item: FileItem, message: Optional[str]) -> dict:
"""构造手动整理预览失败项。"""
return {
"source": file_item.path if file_item else None,
"target": None,
"target_dir": None,
"success": False,
"message": _public_transfer_message(message),
"type": None,
"title": None,
"season": None,
"episode": None,
"episode_end": None,
"part": None,
"org_string": None,
"apply_words": [],
"resource_team": None,
"customization": None,
}
def _merge_transfer_messages(messages: List[str]) -> str:
"""合并手动整理批量预览提示信息,并统一转换错误文案。"""
valid_messages = [
public_message
for msg in messages
if msg
for public_message in [_public_transfer_message(msg)]
if public_message
]
if not valid_messages:
return ""
return "".join(valid_messages[:2]) + (
f",等{len(valid_messages)}条消息" if len(valid_messages) > 2 else ""
)
def _manual_review_actor(current_user: object) -> str: def _manual_review_actor(current_user: object) -> str:
"""按名称、用户名和用户 ID 的稳定顺序提取人工复核操作者。""" """按名称、用户名和用户 ID 的稳定顺序提取人工复核操作者。"""
for attribute in ("name", "username", "id"): for attribute in ("name", "username", "id"):
@@ -637,45 +674,6 @@ def _execute_manual_transfer(
) )
explicit_selected_files = bool(transer_item.fileitems) explicit_selected_files = bool(transer_item.fileitems)
def _build_failure_preview_item(file_item: FileItem, message: str | None) -> dict:
"""
构造手动整理预览失败项。
"""
return {
"source": file_item.path if file_item else None,
"target": None,
"target_dir": None,
"success": False,
"message": _public_transfer_message(message),
"type": None,
"title": None,
"season": None,
"episode": None,
"episode_end": None,
"part": None,
"org_string": None,
"apply_words": [],
"resource_team": None,
"customization": None,
}
def _merge_messages(messages: List[str]) -> str:
"""
合并手动整理批量预览提示信息,并统一转换错误文案。
"""
valid_messages = [
public_message
for msg in messages
if msg
for public_message in [_public_transfer_message(msg)]
if public_message
]
if not valid_messages:
return ""
return "".join(valid_messages[:2]) + (
f",等{len(valid_messages)}条消息" if len(valid_messages) > 2 else ""
)
# 前端显式传入文件列表时,按选中的文件逐个处理,避免将目录整体展开。 # 前端显式传入文件列表时,按选中的文件逐个处理,避免将目录整体展开。
if explicit_selected_files: if explicit_selected_files:
preview_items: List[dict] = [] preview_items: List[dict] = []
@@ -748,7 +746,7 @@ def _execute_manual_transfer(
if isinstance(preview_item, dict) if isinstance(preview_item, dict)
else preview_item else preview_item
) )
merged_message = _merge_messages(error_messages) merged_message = _merge_transfer_messages(error_messages)
preview_data = { preview_data = {
"summary": { "summary": {
"total": len(merged_preview_items), "total": len(merged_preview_items),
@@ -771,7 +769,7 @@ def _execute_manual_transfer(
if not all_success: if not all_success:
return _SchemaResponse( return _SchemaResponse(
success=False, success=False,
message=_merge_messages(error_messages), message=_merge_transfer_messages(error_messages),
) )
return _SchemaResponse(success=True) return _SchemaResponse(success=True)
+2 -9
View File
@@ -1472,11 +1472,7 @@ class MessageChain(ChainBase):
except Exception as e: except Exception as e:
logger.error(f"处理AI智能体消息失败: {e}", exc_info=True) logger.error(f"处理AI智能体消息失败: {e}", exc_info=True)
self.messagehelper.put( self.messagehelper.put("智能助手执行失败,请稍后重试", role="system", title="MoviePilot助手")
"智能助手执行失败,请稍后重试",
role="system",
title="MoviePilot助手",
)
return False return False
def _transcribe_audio_refs( def _transcribe_audio_refs(
@@ -1798,10 +1794,7 @@ class MessageChain(ChainBase):
} }
) )
except Exception as err: except Exception as err:
logger.error( logger.error(f"准备附件上下文失败: {attachment.ref}, error: {err}", exc_info=True)
f"准备附件上下文失败: {attachment.ref}, error: {err}",
exc_info=True,
)
payload["error"] = "附件读取失败,请稍后重试" payload["error"] = "附件读取失败,请稍后重试"
prepared_files.append(payload) prepared_files.append(payload)
+2 -10
View File
@@ -168,11 +168,7 @@ class FailedRetryMixin(_TransferOwnerBase):
state, errmsg = self.redo_transfer_history(history_id) state, errmsg = self.redo_transfer_history(history_id)
if state: if state:
public_message = ( public_message = public_error_message(errmsg, context="transfer") if errmsg else ""
public_error_message(errmsg, context="transfer")
if errmsg
else ""
)
self.post_message( self.post_message(
Message( Message(
channel=channel, channel=channel,
@@ -242,11 +238,7 @@ class FailedRetryMixin(_TransferOwnerBase):
source=source, source=source,
userid=userid, userid=userid,
username=username, username=username,
title=( title=public_message if accepted else "重新整理失败",
public_message
if accepted
else "重新整理失败"
),
text=None if accepted else public_message, text=None if accepted else public_message,
link=self.runtime_config.history_url, link=self.runtime_config.history_url,
save_history=False, save_history=False,
+1 -4
View File
@@ -531,10 +531,7 @@ class TransferSettlementOwner(_TransferOwnerBase):
else task.fileitem.name if task.fileitem else "未知媒体" else task.fileitem.name if task.fileitem else "未知媒体"
), ),
season_episode=getattr(task.meta, "season_episode", "") or "", season_episode=getattr(task.meta, "season_episode", "") or "",
reason=( reason=public_error_message(transferinfo.message, context="transfer") or "整理失败",
public_error_message(transferinfo.message, context="transfer")
or "整理失败"
),
history_id=history_id, history_id=history_id,
image=( image=(
task.mediainfo.get_message_image() task.mediainfo.get_message_image()