文件预览

_output.py

查看 1688 Item Title Optimizer 技能包中的文件内容。

文件内容

scripts/_output.py

#!/usr/bin/env python3
"""
统一输出工具

所有 cmd.py 通过此模块输出 JSON,保证格式一致。
"""

import json

from _errors import SkillError, AuthError


def make_output(success: bool, markdown: str, data: dict) -> dict:
    return {"success": success, "markdown": markdown, "data": data}


def print_output(success: bool, markdown: str, data: dict):
    """打印标准 JSON 输出"""
    print(json.dumps(make_output(success, markdown, data), ensure_ascii=False, indent=2))


def print_error(e: Exception, default_data: dict = None):
    """将异常转为标准错误输出并打印"""
    if isinstance(e, AuthError):
        msg = f"❌ {e.message}\n\n请运行: `cli.py configure YOUR_AK`"
    elif isinstance(e, SkillError):
        msg = f"❌ {e.message}"
    elif isinstance(e, ValueError):
        msg = f"❌ 参数错误:{e}"
    else:
        msg = f"❌ 操作失败:{e}"
    print_output(False, msg, default_data or {})