SD_WebTagManager/python/BaiduCloud.py

41 lines
1.7 KiB
Python
Raw Normal View History

2026-01-12 20:11:49 +08:00
import requests
import json
class BaiduCloud:
def __init__(self, ):
from main import server
self.api_key, self.secret_key = server.tell_baidu_api()
def _get_access_token(self):
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": self.api_key, "client_secret": self.secret_key}
return str(requests.post(url, params=params).json().get("access_token"))
def translate_list(self, tag_list: list, target_language: str = "zh") -> dict:
api_url: str = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + self._get_access_token()
translate_string = ''
for i in tag_list:
translate_string = translate_string + i + ","
translate_string = translate_string[:-1]
payload = json.dumps({
"from": "en",
"to": target_language,
"q": translate_string
}, ensure_ascii=False)
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", api_url, headers=headers, data=payload.encode("utf-8"))
response.encoding = "utf-8"
response_dict: dict = json.loads(response.text)
if response.status_code != 200:
return {"status": False}
if "error_code" in response_dict.keys():
print(response.text)
return {"status": False}
translate_result: str = response_dict.get("result").get("trans_result")[0].get("dst")
translate_result_list: list = translate_result.split("")
return {"status": True, "translate_list": translate_result_list}