nidhal baccouri commited on
Commit
714079e
·
1 Parent(s): 97bacde

added papago

Browse files
Files changed (1) hide show
  1. deep_translator/papago.py +24 -36
deep_translator/papago.py CHANGED
@@ -1,6 +1,7 @@
1
  """
2
  google translator API
3
  """
 
4
 
5
  from deep_translator.constants import BASE_URLS, PAPAGO_LANGUAGE_TO_CODE
6
  from deep_translator.exceptions import TooManyRequests, LanguageNotSupportedException, TranslationNotFound, NotValidPayload, RequestError
@@ -72,31 +73,29 @@ class PapagoTranslator(object):
72
  @return: str: translated text
73
  """
74
 
75
- if self._validate_payload(text):
76
- text = text.strip()
77
-
78
- if self.payload_key:
79
- self._url_params[self.payload_key] = text
80
-
81
- response = requests.get(self.__base_url,
82
- params=self._url_params,
83
- proxies=self.proxies)
84
- print("url: ", response.url)
85
- if response.status_code == 429:
86
- raise TooManyRequests()
87
-
88
- if response.status_code != 200:
89
- raise RequestError()
90
-
91
- soup = BeautifulSoup(response.text, 'html.parser')
92
- print("soup: ", soup)
93
- #exit()
94
- element = soup.find(self._element_tag, self._element_query)
95
- print("element: ", element)
96
- if not element:
97
- raise TranslationNotFound(text)
98
- else:
99
- return element.get_text(strip=True)
100
 
101
  def translate_file(self, path, **kwargs):
102
  """
@@ -146,22 +145,11 @@ class PapagoTranslator(object):
146
  """
147
  if not batch:
148
  raise Exception("Enter your text list that you want to translate")
149
-
150
- print("Please wait.. This may take a couple of seconds because deep_translator sleeps "
151
- "for two seconds after each request in order to not spam the google server.")
152
  arr = []
153
  for i, text in enumerate(batch):
154
 
155
  translated = self.translate(text)
156
  arr.append(translated)
157
- print("sentence number ", i+1, " has been translated successfully")
158
- sleep(2)
159
-
160
  return arr
161
 
162
 
163
-
164
- if __name__ == '__main__':
165
- t = PapagoTranslator(source="en", target="de").translate("cute")
166
- print(t)
167
-
 
1
  """
2
  google translator API
3
  """
4
+ import json
5
 
6
  from deep_translator.constants import BASE_URLS, PAPAGO_LANGUAGE_TO_CODE
7
  from deep_translator.exceptions import TooManyRequests, LanguageNotSupportedException, TranslationNotFound, NotValidPayload, RequestError
 
73
  @return: str: translated text
74
  """
75
 
76
+ payload = {
77
+ "source": self._source,
78
+ "target": self._target,
79
+ "text": text
80
+ }
81
+ headers = {
82
+ 'X-Naver-Client-Id': self.client_id,
83
+ 'X-Naver-Client-Secret': self.secret_key,
84
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
85
+ }
86
+ response = requests.post(self.__base_url, headers=headers, data=payload)
87
+ if response.status_code != 200:
88
+ raise Exception(f'Translation error! -> status code: {response.status_code}')
89
+ res_body = json.loads(response.text)
90
+ if "message" not in res_body:
91
+ raise TranslationNotFound(text)
92
+
93
+ msg = res_body.get("message")
94
+ result = msg.get("result", None)
95
+ if not result:
96
+ raise TranslationNotFound(text)
97
+ translated_text = result.get("translatedText")
98
+ return translated_text
 
 
99
 
100
  def translate_file(self, path, **kwargs):
101
  """
 
145
  """
146
  if not batch:
147
  raise Exception("Enter your text list that you want to translate")
 
 
 
148
  arr = []
149
  for i, text in enumerate(batch):
150
 
151
  translated = self.translate(text)
152
  arr.append(translated)
 
 
 
153
  return arr
154
 
155