// Yet another command-line client for SimplyTranslate // All Rites Reversed (ΔΈ) 3188 Aoi Koizumi, Czar of KST, mutefall, shokara package main import ( "fmt" "flag" "io" "log" "net/http" "os" ) var ( instanceURL string engine string fromLang string toLang string text string ) func init() { // Point flags to variables flag.StringVar(&instanceURL, "i", "https://translate.bus-hit.me/api/translate/", "Instance for SimplyTranslate (default: https://translate.bus-hit.me)") flag.StringVar(&engine, "e", "google", "Translation engine (default: google)") flag.StringVar(&fromLang, "f", "auto", "Source language (default: auto)") flag.StringVar(&toLang, "t", "", "Target language (default: unset)") flag.StringVar(&text, "T", "", "Text to translate (default: unset)") } func main() { // Start parsing flag.Parse() // I assume this works? if len(text) == 0 { log.Printf("Text to translate is required. \n") os.Exit(1) } else if len(toLang) == 0 { log.Printf("Target language is missing. \n") os.Exit(1) } // Hand-craft the request URL queryURL := instanceURL + "?engine=" + engine + "&from=" + fromLang + "&to=" + toLang + "&text=" + text // Make a request to said URL resp, err1 := http.Get(queryURL) if err1 != nil { log.Printf("Request could not be processed due to %s\n", err1) } defer resp.Body.Close() output, err2 := io.ReadAll(resp.Body) if err2 != nil { panic(errno) } // Well... fmt.Printf("Input: %s \n", text) fmt.Printf("Output: %s \n", output) }