Files
MoviePilot/app/runtime/errors.py
DDSRem 2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00

37 lines
1.0 KiB
Python

"""
提供统一的错误文本规范化,不改变业务层已经生成的错误含义。
"""
from typing import Literal, Optional
PublicErrorContext = Literal[
"generic",
"transfer",
"subscription",
"message",
"outbox",
]
_CONTEXT_FALLBACKS: dict[PublicErrorContext, str] = {
"generic": "操作失败,请稍后重试",
"transfer": "整理失败,请刷新后重试",
"subscription": "订阅操作失败,请刷新后重试",
"message": "消息处理失败,请稍后重试",
"outbox": "后台任务暂未完成,系统会自动重试",
}
def public_error_message(
error: Optional[object],
*,
context: PublicErrorContext = "generic",
fallback: Optional[str] = None,
) -> str:
"""
返回业务层提供的错误文案,仅清理空白并为空值提供兜底。
"""
if error is None:
return fallback or _CONTEXT_FALLBACKS[context]
message = " ".join(str(error).split())
return message or fallback or _CONTEXT_FALLBACKS[context]