mirror of
https://codeberg.org/aryak/mozhi
synced 2025-06-04 00:41:07 +05:30
init
This commit is contained in:
174
utils/engines.go
Normal file
174
utils/engines.go
Normal file
@@ -0,0 +1,174 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"github.com/gocolly/colly"
|
||||
"os"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
type List struct {
|
||||
Name string
|
||||
Id string
|
||||
}
|
||||
|
||||
func TranslateGoogle(to string, from string, query string) string {
|
||||
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 answer string
|
||||
sc.OnHTML("div.result-container", func(e *colly.HTMLElement) {
|
||||
answer = e.Text
|
||||
})
|
||||
url := "https://translate.google.com/m?sl=" + from + "&tl=" + to + "&hl=" + to + "&q=" + query
|
||||
sc.Visit(url)
|
||||
return answer
|
||||
}
|
||||
func TranslateReverso(to string, from string, query string) string {
|
||||
json := []byte(`{ "format": "text", "from": "`+from+`", "to": "`+to+`", "input":"`+query+`", "options": {"sentenceSplitter": false, "origin":"translation.web", contextResults: false, languageDetection: true} }`)
|
||||
reversoOut := GetRequest("https://api.reverso.net/translate/v1/translation", json)
|
||||
gjsonArr := reversoOut.Get("translation").Array()
|
||||
answer := gjsonArr[0].String()
|
||||
return answer
|
||||
}
|
||||
func TranslateAll(to string, from string, query string) string {
|
||||
reverso := TranslateReverso(to, from, query)
|
||||
google := TranslateGoogle(to, from, query)
|
||||
fmt.Println("Google: "+google)
|
||||
fmt.Println("Reverso: "+reverso)
|
||||
return "Google: "+google + "\nReverso: "+reverso
|
||||
}
|
||||
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 LangListReverso(listType string) []List {
|
||||
// IDs got from original simplytranslate-web and trial and error. Usually first three letters of language.
|
||||
var ListData = []List {
|
||||
List {
|
||||
Id: "ara",
|
||||
Name: "Arabic",
|
||||
},
|
||||
List {
|
||||
Id: "chi",
|
||||
Name: "Chinese (Simplified)",
|
||||
},
|
||||
List {
|
||||
Id: "cze",
|
||||
Name: "Czech",
|
||||
},
|
||||
List {
|
||||
Id: "dan",
|
||||
Name: "Danish",
|
||||
},
|
||||
List {
|
||||
Id: "dut",
|
||||
Name: "Dutch",
|
||||
},
|
||||
List {
|
||||
Id: "eng",
|
||||
Name: "English",
|
||||
},
|
||||
List {
|
||||
Id: "fra",
|
||||
Name: "French",
|
||||
},
|
||||
List {
|
||||
Id: "ger",
|
||||
Name: "German",
|
||||
},
|
||||
List {
|
||||
Id: "gre",
|
||||
Name: "Greek",
|
||||
},
|
||||
List {
|
||||
Id: "Hebrew",
|
||||
Name: "heb",
|
||||
},
|
||||
List {
|
||||
Id: "hin",
|
||||
Name: "Hindi",
|
||||
},
|
||||
List {
|
||||
Id: "hun",
|
||||
Name: "Hungarian",
|
||||
},
|
||||
List {
|
||||
Id: "ita",
|
||||
Name: "Italian",
|
||||
},
|
||||
List {
|
||||
Id: "jpn",
|
||||
Name: "Japanese",
|
||||
},
|
||||
List {
|
||||
Id: "kor",
|
||||
Name: "Korean",
|
||||
},
|
||||
List {
|
||||
Id: "per",
|
||||
Name: "Persian",
|
||||
},
|
||||
List {
|
||||
Id: "pol",
|
||||
Name: "Polish",
|
||||
},
|
||||
List {
|
||||
Id: "por",
|
||||
Name: "Portugese",
|
||||
},
|
||||
List {
|
||||
Id: "rum",
|
||||
Name: "Romanian",
|
||||
},
|
||||
List {
|
||||
Id: "rus",
|
||||
Name: "Russian",
|
||||
},
|
||||
List {
|
||||
Id: "slo",
|
||||
Name: "Slovakian",
|
||||
},
|
||||
List {
|
||||
Id: "spa",
|
||||
Name: "Spanish",
|
||||
},
|
||||
List {
|
||||
Id: "swe",
|
||||
Name: "Swedish",
|
||||
},
|
||||
List {
|
||||
Id: "tha",
|
||||
Name: "Thai",
|
||||
},
|
||||
List {
|
||||
Id: "tur",
|
||||
Name: "Turkish",
|
||||
},
|
||||
List {
|
||||
Id: "ukr",
|
||||
Name: "Ukrainian",
|
||||
},
|
||||
}
|
||||
return ListData
|
||||
}
|
41
utils/getrequest.go
Normal file
41
utils/getrequest.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"github.com/tidwall/gjson"
|
||||
"bytes"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
)
|
||||
|
||||
func GetRequest(url string, data []byte) gjson.Result {
|
||||
bodyReader := bytes.NewReader(data)
|
||||
r, err := http.NewRequest(http.MethodPost, url, bodyReader)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
//r.Header.Set("Accept", "application/vnd.github.v3+json")
|
||||
r.Header.Set("Content-Type", "application/json")
|
||||
r.Header.Set("User-Agent", UserAgent)
|
||||
|
||||
client := &http.Client{}
|
||||
res, err := client.Do(r)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
defer res.Body.Close()
|
||||
|
||||
body, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
jsonified := gjson.Parse(string(body))
|
||||
|
||||
return jsonified
|
||||
}
|
19
utils/version.go
Normal file
19
utils/version.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"runtime/debug"
|
||||
)
|
||||
|
||||
var Branch = "Alpha"
|
||||
|
||||
// Version returns the git commit hash of the current build. Taken from https://git.vern.cc/pjals/bestofbot.
|
||||
func Version() string {
|
||||
if info, ok := debug.ReadBuildInfo(); ok {
|
||||
for _, setting := range info.Settings {
|
||||
if setting.Key == "vcs.revision" {
|
||||
return setting.Value[:8]
|
||||
}
|
||||
}
|
||||
}
|
||||
return "unknown, please build with Go 1.13+ or use Git"
|
||||
}
|
Reference in New Issue
Block a user