Files
chunyu_project/api/views/baidu_response_codes.py
2026-08-05 23:59:15 +08:00

106 lines
3.2 KiB
Python

#!/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": {}
}