· 4 years ago · Jul 14, 2021, 09:44 AM
1import binascii
2import hashlib
3import hmac
4import random
5import sys
6import time
7from typing import Dict
8
9import requests
10
11secretId = ''
12secretKey = ''
13
14
15def sign_request(param: Dict):
16 sign_str = "POSTtmt.tencentcloudapi.com/?"
17 sign_str += "&".join("%s=%s" % (k, param[k]) for k in sorted(param))
18
19 secret_key = secretKey
20 if sys.version_info[0] > 2:
21 sign_str = bytes(sign_str, "utf-8")
22 secret_key = bytes(secret_key, "utf-8")
23 hashed = hmac.new(secret_key, sign_str, hashlib.sha1)
24 signature = binascii.b2a_base64(hashed.digest())[:-1]
25 signature = signature.decode()
26 return signature
27
28
29def plain_request(req: Dict):
30 param = {}
31 param["Nonce"] = random.randint(1, sys.maxsize)
32 # use current timestamp by default, in seconds
33 param["Timestamp"] = int(time.time())
34 param["Region"] = "ap-shanghai"
35 param["SecretId"] = secretId
36 param["Action"] = "TextTranslate"
37 param["Version"] = "2018-03-21"
38 param["SourceText"] = req["SourceText"]
39 param["Source"] = req["Source"]
40 param["Target"] = req["Target"]
41 param["ProjectId"] = req["ProjectId"]
42
43 signature = sign_request(param)
44 param['Signature'] = signature
45
46 res = requests.post('https://tmt.tencentcloudapi.com', data=param).json()
47
48 print(res['Response']['TargetText'])
49
50
51if __name__ == "__main__":
52 params = {
53 "SourceText": "7/13発売の、comicアンスリウム Vol.100にて【姉体験女学寮】の最終話・後編+100号記念表紙を掲載していただいております。「姉体験女学寮」これにて完結です!",
54 "Source": "ja",
55 "Target": "zh",
56 "ProjectId": 0
57 }
58 plain_request(params)
59