Changeset 20 in code for trunk/engines
- Timestamp:
- Aug 31, 2023, 8:28:02 AM (22 months ago)
- Location:
- trunk/engines
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/engines/engine.go
r15 r20 13 13 Translate(text string, from, to string) (TranslationResult, error) 14 14 DetectLanguage(text string) (string, error) 15 Tts(text, lang string) (string, error) 15 16 } 16 17 … … 18 19 19 20 var Engines = map[string]Engine{ 20 "google": 21 "icibia": &ICIBA{},22 "libre": &LibreTranslate{},21 "google": &GoogleTranslate{}, 22 // "icibia": &ICIBA{}, 23 // "libre": &LibreTranslate{}, 23 24 "reverseo": &Reverso{}, 24 25 } -
trunk/engines/google.go
r15 r20 36 36 37 37 response, err := http.Get(requestURL.String()) 38 39 38 if err != nil { 40 39 return nil, err … … 44 43 45 44 doc, err := goquery.NewDocumentFromReader(response.Body) 46 47 45 if err != nil { 48 46 return nil, err 49 47 } 50 48 51 var langs Language 49 var langs Language = make(Language) 52 50 53 51 doc.Find(".language-item").Each(func(_ int, s *goquery.Selection) { … … 55 53 56 54 href, exists := a.Attr("href") 57 58 // Shouldn't happen, but here goes.59 55 if !exists { 60 56 return … … 62 58 63 59 langURL, err := url.Parse(href) 64 65 60 if err != nil { 66 61 return … … 68 63 69 64 langCode := langURL.Query()[langsType][0] 70 71 if langCode == "auto" {72 return73 }74 65 75 66 langs[langCode] = a.Text() … … 85 76 func (e *GoogleTranslate) TargetLanguages() (Language, error) { 86 77 return e.getLangs("target") 78 } 79 80 func (e *GoogleTranslate) Tts(text, lang string) (string, error) { 81 requestURL, _ := url.Parse("https://translate.google.com/translate_tts") 82 83 query := url.Values{} 84 query.Add("tl", lang) 85 query.Add("q", text) 86 query.Add("client", "tw-ob") 87 requestURL.RawQuery = query.Encode() 88 89 return requestURL.String(), nil 87 90 } 88 91 -
trunk/engines/iciba.go
r15 r20 226 226 227 227 func (_ *ICIBA) Translate(text string, from, to string) (TranslationResult, error) { 228 requestURL, err := url.Parse("https://ifanyi.iciba.com/index.php") 229 230 if err != nil { 231 // The URL is constant, so it should never fail. 232 panic(err) 233 } 228 requestURL, _ := url.Parse("https://ifanyi.iciba.com/index.php") 234 229 235 230 query := url.Values{} … … 240 235 241 236 sum := md5.Sum([]byte(("6key_web_fanyiifanyiweb8hc9s98e" + text))) 242 243 237 query.Add("sign", hex.EncodeToString(sum[:])[:16]) 244 238 … … 251 245 252 246 response, err := http.PostForm(requestURL.String(), formData) 253 254 247 if err != nil { 255 248 return TranslationResult{}, err … … 287 280 }, nil 288 281 } 282 283 func (_ *ICIBA) Tts(text, lang string) (string, error) { return "", nil } -
trunk/engines/libretranslate.go
r15 r20 63 63 64 64 func (e *LibreTranslate) TargetLanguages() (Language, error) { return e.getLangs() } 65 66 func (e *LibreTranslate) Tts(text, lang string) (string, error) { return "", nil } 65 67 66 68 type libreDetectResponse []struct { -
trunk/engines/reverso.go
r15 r20 46 46 47 47 func (_ *Reverso) TargetLanguages() (Language, error) { return reversoLangs, nil } 48 49 func (_ *Reverso) Tts(text, lang string) (string, error) { return "", nil } 48 50 49 51 type reversoAPIResponse struct {
Note:
See TracChangeset
for help on using the changeset viewer.