106 lines
3.2 KiB
Python
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": {}
|
|
} |