source: code/trunk/main.go@ 4

Last change on this file since 4 was 4, checked in by koizumi.aoi, 2 years ago

Clean up

Signed-off-by: Aoi K <koizumi.aoi@…>

File size: 1.3 KB
Line 
1package main
2
3import (
4 "encoding/json"
5 "flag"
6 "fmt"
7 "io"
8 "log"
9 "net/http"
10 "os"
11)
12
13var (
14 instanceURL string
15 engine string
16 fromLang string
17 toLang string
18 text string
19)
20
21type TranslateAPI struct {
22 OutText string `json:"translated-text"`
23}
24
25func init() {
26 flag.StringVar(&instanceURL, "i", "https://translate.bus-hit.me/api/translate/", "Instance for SimplyTranslate (default: https://translate.bus-hit.me)")
27 flag.StringVar(&engine, "e", "google", "Translation engine (default: google)")
28 flag.StringVar(&fromLang, "f", "auto", "Source language (default: auto)")
29 flag.StringVar(&toLang, "t", "", "Target language (default: unset)")
30 flag.StringVar(&text, "T", "", "Text to translate (default: unset)")
31}
32func main() {
33 flag.Parse()
34 if len(text) == 0 || len(toLang) == 0 {
35 log.Fatal("Missing either the text or the target language.")
36 os.Exit(1)
37 }
38 var o TranslateAPI
39 var queryURL = instanceURL + "?engine=" + engine + "&from=" + fromLang + "&to=" + toLang + "&text=" + text
40 req, err := http.Get(queryURL)
41 sanityCheck(err)
42 defer req.Body.Close()
43 resp, err := io.ReadAll(req.Body)
44 _ = json.Unmarshal([]byte(resp), &o)
45 sanityCheck(err)
46 fmt.Printf("Input: %s (%s)\n",text,fromLang)
47 fmt.Printf("Output: %s (%s)\n",o.OutText,toLang)
48}
49func sanityCheck(err error) {
50 if err != nil {
51 log.Fatal(err)
52 }
53}
Note: See TracBrowser for help on using the repository browser.