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
RevLine 
[1]1// Yet another command-line client for SimplyTranslate
[3]2// All Rites Reversed (ĸ) 3188 Aoi Koizumi, Czar of KST, mutefall, shokara, Baobab
[1]3
4package main
5
6import (
[3]7 "encoding/json"
8 "flag"
[1]9 "fmt"
10 "io"
[2]11 "log"
12 "net/http"
[1]13 "os"
14)
15
16var (
17 instanceURL string
[3]18 engine string
19 fromLang string
20 toLang string
21 text string
[1]22)
23
[3]24type TranslateAPI struct {
25 OutText string `json:"translated-text"`
26}
27
[1]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)")
[2]32 flag.StringVar(&toLang, "t", "", "Target language (default: unset)")
33 flag.StringVar(&text, "T", "", "Text to translate (default: unset)")
[1]34}
35func main() {
36 flag.Parse()
37
[2]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 }
[1]45
[3]46 var queryURL = instanceURL + "?engine=" + engine + "&from=" + fromLang + "&to=" + toLang + "&text=" + text
47
48 req, err1 := http.Get(queryURL)
49 var o TranslateAPI
50
[2]51 if err1 != nil {
[3]52 log.Printf("Couldn't process request %s\n", err1)
[1]53 }
54
[3]55 defer req.Body.Close()
56 resp, err2 := io.ReadAll(req.Body)
[2]57
58 if err2 != nil {
[3]59 log.Printf("Couldn't process response %s\n", err2)
[2]60 }
61
[3]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)
[1]66}
Note: See TracBrowser for help on using the repository browser.