2026-01-13 00:48:35 +08:00
|
|
|
|
import requests
|
|
|
|
|
|
import json
|
|
|
|
|
|
import hashlib
|
|
|
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class XiaoNiu:
|
|
|
|
|
|
def __init__(self, ):
|
|
|
|
|
|
from main import server
|
|
|
|
|
|
self.api_id, self.api_key = server.tell_xiaoniu_api()
|
|
|
|
|
|
|
|
|
|
|
|
# 生成权限字符串
|
|
|
|
|
|
def _generate_auth_str(self, params):
|
|
|
|
|
|
sorted_params = sorted(list(params.items()) + [('apikey', self.api_key)], key=lambda x: x[0])
|
|
|
|
|
|
param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
|
|
|
|
|
|
md5 = hashlib.md5()
|
|
|
|
|
|
md5.update(param_str.encode('utf-8'))
|
|
|
|
|
|
auth_str = md5.hexdigest()
|
|
|
|
|
|
return auth_str
|
|
|
|
|
|
|
|
|
|
|
|
def translate_list(self, tag_list: list, target_language: str = "zh") -> dict:
|
|
|
|
|
|
api_url: str = "https://api.niutrans.com/v2/text/translate"
|
|
|
|
|
|
translate_string = ''
|
|
|
|
|
|
for i in tag_list:
|
|
|
|
|
|
translate_string = translate_string + i + ","
|
|
|
|
|
|
translate_string = translate_string[:-1]
|
|
|
|
|
|
payload = {
|
|
|
|
|
|
"from": "en",
|
|
|
|
|
|
"to": target_language,
|
|
|
|
|
|
"srcText": translate_string,
|
|
|
|
|
|
"appId": self.api_id,
|
|
|
|
|
|
"timestamp": int(time.time()),
|
|
|
|
|
|
}
|
|
|
|
|
|
auth_str = self._generate_auth_str(payload)
|
|
|
|
|
|
payload['authStr'] = auth_str
|
|
|
|
|
|
response = requests.post(api_url, data=payload)
|
|
|
|
|
|
response_dict: dict = json.loads(response.text)
|
|
|
|
|
|
if response.status_code != 200:
|
|
|
|
|
|
return {"status": False}
|
|
|
|
|
|
if "errorCode" in response_dict.keys():
|
|
|
|
|
|
print(response.text)
|
|
|
|
|
|
return {"status": False}
|
|
|
|
|
|
translate_result: str = response_dict.get("tgtText")
|
2026-01-13 00:56:56 +08:00
|
|
|
|
translate_result_list: list = translate_result.split(",")
|
2026-01-13 02:41:21 +08:00
|
|
|
|
if len(translate_result_list) == 1:
|
|
|
|
|
|
translate_result_list: list = translate_result_list[0].split(",")
|
2026-01-13 00:56:56 +08:00
|
|
|
|
print(translate_result_list)
|
2026-01-13 00:48:35 +08:00
|
|
|
|
return {"status": True, "translate_list": translate_result_list}
|