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") translate_result_list: list = translate_result.split(",") return {"status": True, "translate_list": translate_result_list}