diff --git a/cmd/langlist.go b/cmd/langlist.go index 6d9d143..5a00123 100644 --- a/cmd/langlist.go +++ b/cmd/langlist.go @@ -33,7 +33,7 @@ var langlistCmd = &cobra.Command{ fmt.Println(err) } for _, idx := range idxs { - if raw == true { + if raw { fmt.Println(list[idx].Id) } else { fmt.Println("Selected Language:", list[idx].Id, "("+list[idx].Name+")") diff --git a/cmd/translate.go b/cmd/translate.go index e4d6682..0b0f3d9 100644 --- a/cmd/translate.go +++ b/cmd/translate.go @@ -17,6 +17,33 @@ var ( rawjson bool ) +func printEngineResult(result libmozhi.LangOut, printPlaceHolderAndEngineName bool) { + if printPlaceHolderAndEngineName { + fmt.Println("-----------------------------------") + fmt.Println("Engine: " + result.Engine) + } + + fmt.Println("Translated Text: " + result.OutputText) + if source == "auto" { + fmt.Println("Detected Language: " + result.AutoDetect) + } + fmt.Println("Source Language: " + result.SourceLang) + fmt.Println("Target Language: " + result.TargetLang) + + if printPlaceHolderAndEngineName { + fmt.Println("-----------------------------------") + } +} + +func printRaw(data interface{}) { + j, err := json.Marshal(data) + if err != nil { + fmt.Println(err) + } else { + fmt.Println(string(j)) + } +} + var translateCmd = &cobra.Command{ Use: "translate", Short: "Translate.", @@ -24,44 +51,21 @@ var translateCmd = &cobra.Command{ if engine == "all" { data := libmozhi.TranslateAll(dest, source, query) if rawjson { - j, err := json.Marshal(data) - if err != nil { - fmt.Println(err) - } else { - fmt.Println(string(j)) - } + printRaw(data) } else { - for i := 0; i < len(data); i++ { - fmt.Println("-----------------------------------") - fmt.Println("Engine: " + data[i].Engine) - fmt.Println("Translated Text: " + data[i].OutputText) - if source == "auto" { - fmt.Println("Detected Language: " + data[i].AutoDetect) - } - fmt.Println("Source Language: " + data[i].SourceLang) - fmt.Println("Target Language: " + data[i].TargetLang) + for _, result := range data { + printEngineResult(result, true) } - fmt.Println("-----------------------------------") } } else { data, err := libmozhi.Translate(engine, dest, source, query) if rawjson { - j, err := json.Marshal(data) - if err != nil { - fmt.Println(err) - } else { - fmt.Println(string(j)) - } + printRaw(data) } else { if err != nil { fmt.Println(err) } else { - fmt.Println("Translated Text: " + data.OutputText) - if source == "auto" { - fmt.Println("Detected Language: " + data.AutoDetect) - } - fmt.Println("Source Language: " + data.SourceLang) - fmt.Println("Target Language: " + data.TargetLang) + printEngineResult(data, false) } } } diff --git a/pages/api.go b/pages/api.go index 73345df..890ca6b 100644 --- a/pages/api.go +++ b/pages/api.go @@ -82,20 +82,14 @@ func HandleTranslate(c *fiber.Ctx) error { if engine == "" || from == "" || to == "" || text == "" { return fiber.NewError(fiber.StatusBadRequest, "from, to, engine, text are required query strings.") } - var dataarr []libmozhi.LangOut - var data libmozhi.LangOut - var err error if engine == "all" { - dataarr = libmozhi.TranslateAll(to, from, text) + dataarr := libmozhi.TranslateAll(to, from, text) + return c.JSON(dataarr) } else { - data, err = libmozhi.Translate(engine, to, from, text) + data, err := libmozhi.Translate(engine, to, from, text) if err != nil { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } - } - if engine == "all" { - return c.JSON(dataarr) - } else { return c.JSON(data) } } diff --git a/pages/index.go b/pages/index.go index f6dc685..1991714 100644 --- a/pages/index.go +++ b/pages/index.go @@ -12,7 +12,7 @@ import ( func langListMerge(engines map[string]string) ([]libmozhi.List, []libmozhi.List) { sl := []libmozhi.List{} tl := []libmozhi.List{} - for key, _ := range engines { + for key := range engines { temp, _ := libmozhi.LangList(key, "sl") temp2, _ := libmozhi.LangList(key, "tl") sl = append(sl, temp...) diff --git a/utils/main.go b/utils/main.go index 0c6c790..116bfb6 100644 --- a/utils/main.go +++ b/utils/main.go @@ -7,6 +7,9 @@ import ( "regexp" ) +var nonAlphanumericRegex = regexp.MustCompile(`[^a-zA-Z]+`) +var nonAlphaRegex = regexp.MustCompile(`[^a-zA-Z0-9]+`) + func GetQueryOrFormValue(c *fiber.Ctx, key string) string { if c.Method() == "POST" { return c.FormValue(key) @@ -16,15 +19,12 @@ func GetQueryOrFormValue(c *fiber.Ctx, key string) string { } func EnvTrueNoExist(env string) bool { - if _, ok := os.LookupEnv(env); ok == false || os.Getenv(env) == "true" { - return true - } - return false + _, envFound := os.LookupEnv(env) + + return !envFound || os.Getenv(env) == "true" } func Sanitize(str string, strip string) string { - nonAlphanumericRegex := regexp.MustCompile(`[^a-zA-Z]+`) - nonAlphaRegex := regexp.MustCompile(`[^a-zA-Z0-9]+`) if strip == "alpha" { return nonAlphaRegex.ReplaceAllString(str, "") } else if strip == "alphanumeric" {