from PySide6.QtWidgets import QApplication,QWidget
from Ui_home import Ui_Form
import requests
import random
import json
from hashlib import md5
import os
print(os.getcwd())
class mywindows(QWidget,Ui_Form):
    def __init__(self):
        super().__init__()
        Ui_Form.setupUi(self,self)
        self.pushButton1.clicked.connect(self.translation)
        
    

    def translation(self):
        with open('apikey.json','r') as f:
            appid_read_json = json.load(f)

        
        appid = appid_read_json["id"]
        appkey = appid_read_json["key"]

        from_lang = self.input_l.currentText()
        to_lang = self.output_r.currentText()
        if from_lang == "中文":
            from_lang = "zh"
        elif from_lang == "英文":
            from_lang = "en"
        elif from_lang == "日语":
            from_lang = "jp"
        if to_lang == "中文":
            to_lang = "zh"
        elif to_lang == "英文":
            to_lang = "en"
        elif to_lang == "日语":
            to_lang = "jp"
        query = self.input_text.toPlainText()

        endpoint = 'http://api.fanyi.baidu.com'
        path = '/api/trans/vip/translate'
        url = endpoint + path
        def make_md5(s, encoding='utf-8'):
            return md5(s.encode(encoding)).hexdigest()
        salt = random.randint(32768, 65536)
        sign = make_md5(appid + query + str(salt) + appkey)
        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
        payload = {'appid': appid, 'q': query, 'from': from_lang, 'to': to_lang, 'salt': salt, 'sign': sign}
        r = requests.post(url, params=payload, headers=headers)
        result = r.json()
        
        json_output_fanyi = str(result["trans_result"][0]["dst"])
        self.output_text.setPlainText(json_output_fanyi)
        self.more.setPlainText(json.dumps(result, indent=4, ensure_ascii=False))





if __name__ == "__main__":
    app = QApplication([])
    windows = mywindows()
    windows.show()
    app.exec()
