Improved code
git-svn-id: file:///srv/svn/repo/mai/trunk@20 e410bdd4-646f-c54f-a7ce-fffcc4f439ae
This commit is contained in:
@@ -35,7 +35,6 @@ func (_ *GoogleTranslate) getLangs(type_ string) (Language, error) {
|
||||
requestURL.RawQuery = query.Encode()
|
||||
|
||||
response, err := http.Get(requestURL.String())
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -43,35 +42,27 @@ func (_ *GoogleTranslate) getLangs(type_ string) (Language, error) {
|
||||
defer response.Body.Close()
|
||||
|
||||
doc, err := goquery.NewDocumentFromReader(response.Body)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var langs Language
|
||||
var langs Language = make(Language)
|
||||
|
||||
doc.Find(".language-item").Each(func(_ int, s *goquery.Selection) {
|
||||
a := s.Find("a").First()
|
||||
|
||||
href, exists := a.Attr("href")
|
||||
|
||||
// Shouldn't happen, but here goes.
|
||||
if !exists {
|
||||
return
|
||||
}
|
||||
|
||||
langURL, err := url.Parse(href)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
langCode := langURL.Query()[langsType][0]
|
||||
|
||||
if langCode == "auto" {
|
||||
return
|
||||
}
|
||||
|
||||
langs[langCode] = a.Text()
|
||||
})
|
||||
|
||||
@@ -86,6 +77,18 @@ func (e *GoogleTranslate) TargetLanguages() (Language, error) {
|
||||
return e.getLangs("target")
|
||||
}
|
||||
|
||||
func (e *GoogleTranslate) Tts(text, lang string) (string, error) {
|
||||
requestURL, _ := url.Parse("https://translate.google.com/translate_tts")
|
||||
|
||||
query := url.Values{}
|
||||
query.Add("tl", lang)
|
||||
query.Add("q", text)
|
||||
query.Add("client", "tw-ob")
|
||||
requestURL.RawQuery = query.Encode()
|
||||
|
||||
return requestURL.String(), nil
|
||||
}
|
||||
|
||||
func (_ *GoogleTranslate) DetectLanguage(text string) (string, error) { return "", nil }
|
||||
|
||||
func (_ *GoogleTranslate) Translate(text string, from, to string) (TranslationResult, error) {
|
||||
|
||||
Reference in New Issue
Block a user