mirror of
https://github.com/yihong0618/bilingual_book_maker.git
synced 2025-06-02 09:30:24 +00:00

* add prompt template * format output for ChatGPTAPITranslator * black format files * fix: google txt loader failed --------- Co-authored-by: yihong0618 <zouzou0208@gmail.com>
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import requests
|
|
|
|
from .base_translator import Base
|
|
|
|
|
|
class Google(Base):
|
|
"""
|
|
google translate
|
|
"""
|
|
|
|
def __init__(self, key, language, api_base=None, prompt_template=None):
|
|
super().__init__(key, language)
|
|
self.api_url = "https://translate.google.com/translate_a/single?client=it&dt=qca&dt=t&dt=rmt&dt=bd&dt=rms&dt=sos&dt=md&dt=gt&dt=ld&dt=ss&dt=ex&otf=2&dj=1&hl=en&ie=UTF-8&oe=UTF-8&sl=auto&tl=zh-CN"
|
|
self.headers = {
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
"User-Agent": "GoogleTranslate/6.29.59279 (iPhone; iOS 15.4; en; iPhone14,2)",
|
|
}
|
|
# TODO support more models here
|
|
self.session = requests.session()
|
|
self.language = language
|
|
|
|
def rotate_key(self):
|
|
pass
|
|
|
|
def translate(self, text):
|
|
print(text)
|
|
r = self.session.post(
|
|
self.api_url,
|
|
headers=self.headers,
|
|
data="q={text}".format(text=requests.utils.quote(text)),
|
|
)
|
|
if not r.ok:
|
|
return text
|
|
t_text = "".join(
|
|
[sentence.get("trans", "") for sentence in r.json()["sentences"]]
|
|
)
|
|
print(t_text)
|
|
return t_text
|