2023-07-22 19:50:21 +05:30
|
|
|
package utils
|
|
|
|
|
|
|
|
//import (
|
|
|
|
// "github.com/gocolly/colly"
|
|
|
|
// "os"
|
|
|
|
// "strings"
|
|
|
|
//)
|
|
|
|
//
|
|
|
|
//type List struct {
|
|
|
|
// Name string
|
|
|
|
// Id string
|
|
|
|
//}
|
2023-07-22 19:54:15 +05:30
|
|
|
//// To get new language lists for google yandex and libertranslate.
|
2023-07-22 19:50:21 +05:30
|
|
|
//func LangListGoogle(listType string) []List {
|
|
|
|
// UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT")
|
|
|
|
// if !ok {
|
|
|
|
// UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
|
|
|
|
// }
|
|
|
|
// sc := colly.NewCollector(colly.AllowedDomains("translate.google.com"), colly.UserAgent(UserAgent))
|
|
|
|
// var ListData []List
|
|
|
|
// sc.OnHTML("div.root-container", func(e *colly.HTMLElement) {
|
|
|
|
// e.ForEach("div.language-item", func(i int, el *colly.HTMLElement) {
|
|
|
|
// var ListInfo List
|
|
|
|
// ListInfo.Name = el.ChildText("a")
|
|
|
|
// if listType == "tl" {
|
|
|
|
// ListInfo.Id = strings.TrimPrefix(strings.TrimSuffix(el.ChildAttr("a", "href"), "&hl=en-US"), "./m?sl=en&tl=")
|
|
|
|
// } else {
|
|
|
|
// ListInfo.Id = strings.TrimPrefix(strings.TrimSuffix(el.ChildAttr("a", "href"), "&tl=en&hl=en-US"), "./m?sl=")
|
|
|
|
// }
|
|
|
|
// ListData = append(ListData, ListInfo)
|
|
|
|
// })
|
|
|
|
// })
|
|
|
|
// url := "https://translate.google.com/m?sl=en&tl=en&hl=en-US&mui=" + listType
|
|
|
|
// sc.Visit(url)
|
|
|
|
// return ListData
|
|
|
|
//}
|
|
|
|
//func LangListLibreTranslate(listType string) []List {
|
|
|
|
// // TODO: Make it configurable
|
|
|
|
// libreTranslateOut := PostRequest("https://translate.argosopentech.com/languages", []byte(""))
|
|
|
|
// gjsonArr := libreTranslateOut.Array()
|
|
|
|
// var ListData []List
|
|
|
|
// for _, r := range gjsonArr {
|
|
|
|
// code := r.Get("code").String()
|
|
|
|
// name := r.Get("name").String()
|
2023-07-22 19:54:15 +05:30
|
|
|
//
|
2023-07-22 19:50:21 +05:30
|
|
|
// ListData = append(ListData, List{Id: code, Name: name})
|
|
|
|
// }
|
|
|
|
// if listType == "sl" {
|
|
|
|
// auto := List{
|
|
|
|
// Id: "auto",
|
|
|
|
// Name: "Detect Language",
|
|
|
|
// }
|
|
|
|
// ListData = append(ListData, auto)
|
|
|
|
// }
|
|
|
|
// return ListData
|
|
|
|
//}
|
|
|
|
//func LangListYandex(listType string) []List {
|
|
|
|
// UserAgent, ok := os.LookupEnv("SIMPLYTRANSLATE_USER_AGENT")
|
|
|
|
// if !ok {
|
|
|
|
// UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
|
|
|
|
// }
|
|
|
|
// sc := colly.NewCollector(colly.AllowedDomains("localhost:8000"), colly.UserAgent(UserAgent))
|
|
|
|
// var ListData []List
|
|
|
|
// sc.OnHTML("table.langs", func(e *colly.HTMLElement) {
|
|
|
|
// if listType == "sl" {
|
|
|
|
// e.ForEach("select[name='from'] option", func(i int, el *colly.HTMLElement) {
|
|
|
|
// var ListInfo List
|
|
|
|
// ListInfo.Name = el.Text
|
|
|
|
// ListInfo.Id = el.Attr("value")
|
|
|
|
// ListData = append(ListData, ListInfo)
|
|
|
|
// })
|
|
|
|
// } else {
|
|
|
|
// e.ForEach("select[name='to'] option", func(i int, el *colly.HTMLElement) {
|
|
|
|
// var ListInfo List
|
|
|
|
// ListInfo.Name = el.Text
|
|
|
|
// ListInfo.Id = el.Attr("value")
|
|
|
|
// ListData = append(ListData, ListInfo)
|
|
|
|
// })
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
// })
|
|
|
|
// // Static version of translate.yandex.net nojs/mobile version
|
|
|
|
// url := "http://localhost:8000/index.html"
|
|
|
|
// sc.Visit(url)
|
|
|
|
// return ListData
|
|
|
|
//}
|
|
|
|
//
|