eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/MicrosoftEngine.py

changeset 7256
4ef3b78ebb4e
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7255:d595f6f9cbf8 7256:4ef3b78ebb4e
16 class MicrosoftEngine(TranslationEngine): 16 class MicrosoftEngine(TranslationEngine):
17 """ 17 """
18 Class implementing the translation engine for the Microsoft 18 Class implementing the translation engine for the Microsoft
19 translation service. 19 translation service.
20 """ 20 """
21 AccessTokenUrl = \ 21 AccessTokenUrl = (
22 "https://api.cognitive.microsoft.com/sts/v1.0/issueToken" 22 "https://api.cognitive.microsoft.com/sts/v1.0/issueToken"
23 )
23 TranslatorUrl = "https://api.microsofttranslator.com/V2/Http.svc/Translate" 24 TranslatorUrl = "https://api.microsofttranslator.com/V2/Http.svc/Translate"
24 TextToSpeechUrl = "https://api.microsofttranslator.com/V2/Http.svc/Speak" 25 TextToSpeechUrl = "https://api.microsofttranslator.com/V2/Http.svc/Speak"
25 26
26 def __init__(self, plugin, parent=None): 27 def __init__(self, plugin, parent=None):
27 """ 28 """
100 101
101 @param requestObject reference to the request object 102 @param requestObject reference to the request object
102 (TranslatorRequest) 103 (TranslatorRequest)
103 @return access token (string) 104 @return access token (string)
104 """ 105 """
105 if self.plugin.getPreferences("MsAuthTokenExpire") > \ 106 if (
106 QDateTime.currentDateTime(): 107 self.plugin.getPreferences("MsAuthTokenExpire") >
108 QDateTime.currentDateTime()
109 ):
107 return self.plugin.getPreferences("MsAuthToken") 110 return self.plugin.getPreferences("MsAuthToken")
108 111
109 # Token expired, get a new one 112 # Token expired, get a new one
110 subscriptionKey, valid = self.__getClientDataAzure() 113 subscriptionKey, valid = self.__getClientDataAzure()
111 if not valid: 114 if not valid:
156 text) 159 text)
157 url = QUrl(self.TranslatorUrl + params) 160 url = QUrl(self.TranslatorUrl + params)
158 response, ok = requestObject.get(url, extraHeaders=[authHeader]) 161 response, ok = requestObject.get(url, extraHeaders=[authHeader])
159 if ok: 162 if ok:
160 response = str(response, "utf-8", "replace").strip() 163 response = str(response, "utf-8", "replace").strip()
161 if response.startswith("<string") and \ 164 if (
162 response.endswith("</string>"): 165 response.startswith("<string") and
166 response.endswith("</string>")
167 ):
163 result = response.split(">", 1)[1].rsplit("<", 1)[0] 168 result = response.split(">", 1)[1].rsplit("<", 1)[0]
164 else: 169 else:
165 result = self.tr("No translation available.") 170 result = self.tr("No translation available.")
166 ok = False 171 ok = False
167 return result, ok 172 return result, ok

eric ide

mercurial