#!/usr/bin/env python3 """ Baidu Translation API response codes and messages enumeration This module contains all response codes and messages used by BaiduFanyiView for standardized API responses. """ from enum import IntEnum, Enum class BaiduResponseCode(IntEnum): """Baidu translation API response codes (5-digit numbers)""" # Success codes (10000-19999) SUCCESS = 10000 TRANSLATION_SUCCESS = 10001 LANGUAGE_RECOGNITION_SUCCESS = 10002 PICTURE_TRANSLATION_SUCCESS = 10003 SPEECH_RECOGNITION_SUCCESS = 10004 # Error codes (20000-29999) PARAMETER_ERROR = 20001 TEXT_TOO_LONG = 20002 INVALID_LANGUAGE_CODE = 20003 LANGUAGE_NOT_SUPPORTED = 20004 PICTURE_FORMAT_ERROR = 20005 AUDIO_FORMAT_ERROR = 20006 SERVICE_UNAVAILABLE = 20007 NETWORK_ERROR = 20008 API_KEY_ERROR = 20009 class BaiduResponseMessage(Enum): """Baidu translation API response messages""" # Success messages SUCCESS = "Success" TRANSLATION_SUCCESS = "Translation completed successfully" LANGUAGE_RECOGNITION_SUCCESS = "Language recognition completed successfully" PICTURE_TRANSLATION_SUCCESS = "Picture translation completed successfully" SPEECH_RECOGNITION_SUCCESS = "Speech recognition completed successfully" # Error messages PARAMETER_ERROR = "Parameter error" TEXT_TOO_LONG = "Text length exceeds limit (3000 characters)" INVALID_LANGUAGE_CODE = "Invalid language code" LANGUAGE_NOT_SUPPORTED = "Language not supported" PICTURE_FORMAT_ERROR = "Picture format error" AUDIO_FORMAT_ERROR = "Audio format error" SERVICE_UNAVAILABLE = "Service temporarily unavailable" NETWORK_ERROR = "Network connection failed" API_KEY_ERROR = "API key authentication failed" def get_baidu_response_message(code: BaiduResponseCode) -> str: """ Get response message by Baidu response code Args: code: BaiduResponseCode enum value Returns: Corresponding message string """ try: return BaiduResponseMessage(code.value).value except ValueError: return BaiduResponseMessage.PARAMETER_ERROR.value def create_baidu_standardized_response(data=None, code: BaiduResponseCode = BaiduResponseCode.SUCCESS, status_code=200): """ Create standardized Baidu API response Args: data: Response data (optional) code: BaiduResponseCode enum value status_code: HTTP status code Returns: Standardized response dictionary """ return { "message": get_baidu_response_message(code), "code": str(code.value).zfill(5), "data": data if data is not None else {} } def create_baidu_error_response(message: str = None, code: BaiduResponseCode = BaiduResponseCode.SERVICE_UNAVAILABLE, status_code=400): """ Create standardized Baidu API error response Args: message: Custom error message (optional) code: BaiduResponseCode enum value status_code: HTTP status code Returns: Standardized error response dictionary """ actual_message = message if message else get_baidu_response_message(code) return { "message": actual_message, "code": str(code.value).zfill(5), "data": {} }