mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-10-28 19:06:36 +08:00
37 lines
1.0 KiB
Python
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]
|