"""API 通用工具函数""" from typing import Any, Optional from fastapi.responses import JSONResponse def success_response(message: str, data: Any = None) -> dict: """成功响应""" return {"code": 200, "message": message, "data": data} def error_response(message: str, code: int = 500) -> JSONResponse: """错误响应""" return JSONResponse( status_code=code, content={"code": code, "message": message, "data": None}, ) def format_proxy(proxy) -> dict: """格式化代理对象""" return { "ip": proxy.ip, "port": proxy.port, "protocol": proxy.protocol, "score": proxy.score, "response_time_ms": proxy.response_time_ms, "last_check": proxy.last_check.isoformat() if proxy.last_check else None, "validated": getattr(proxy, "validated", 0), "use_count": int(getattr(proxy, "use_count", 0) or 0), } def format_plugin(plugin) -> dict: """格式化插件对象""" return { "id": plugin.id, "name": plugin.display_name, "display_name": plugin.display_name, "description": plugin.description, "enabled": plugin.enabled, "last_run": plugin.last_run.isoformat() if plugin.last_run else None, "success_count": plugin.success_count, "failure_count": plugin.failure_count, }