source: code/trunk/main.go@ 3

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

Flawless Victory

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

File size: 1.6 KB
Line 
1// Yet another command-line client for SimplyTranslate
2// All Rites Reversed (ĸ) 3188 Aoi Koizumi, Czar of KST, mutefall, shokara, Baobab
3
4package main
5
6import (
7 "encoding/json"
8 "flag"
9 "fmt"
10 "io"
11 "log"
12 "net/http"
13 "os"
14)
15
16var (
17 instanceURL string
18 engine string
19 fromLang string
20 toLang string
21 text string
22)
23
24type TranslateAPI struct {
25 OutText string `json:"translated-text"`
26}
27
28func init() {
29 flag.StringVar(&instanceURL, "i", "https://translate.bus-hit.me/api/translate/", "Instance for SimplyTranslate (default: https://translate.bus-hit.me)")
30 flag.StringVar(&engine, "e", "google", "Translation engine (default: google)")
31 flag.StringVar(&fromLang, "f", "auto", "Source language (default: auto)")
32 flag.StringVar(&toLang, "t", "", "Target language (default: unset)")
33 flag.StringVar(&text, "T", "", "Text to translate (default: unset)")
34}
35func main() {
36 flag.Parse()
37
38 if len(text) == 0 {
39 log.Printf("Text to translate is required. \n")
40 os.Exit(1)
41 } else if len(toLang) == 0 {
42 log.Printf("Target language is missing. \n")
43 os.Exit(1)
44 }
45
46 var queryURL = instanceURL + "?engine=" + engine + "&from=" + fromLang + "&to=" + toLang + "&text=" + text
47
48 req, err1 := http.Get(queryURL)
49 var o TranslateAPI
50
51 if err1 != nil {
52 log.Printf("Couldn't process request %s\n", err1)
53 }
54
55 defer req.Body.Close()
56 resp, err2 := io.ReadAll(req.Body)
57
58 if err2 != nil {
59 log.Printf("Couldn't process response %s\n", err2)
60 }
61
62 _ = json.Unmarshal([]byte(resp), &o)
63
64 fmt.Printf("Input: %s (%s)\n",text,fromLang)
65 fmt.Printf("Output: %s (%s)\n",o.OutText,toLang)
66}
Note: See TracBrowser for help on using the repository browser.