From fc4e2d70b62c0e982ff0b6e5d4c747cadb278eb4 Mon Sep 17 00:00:00 2001 From: Arya Kiran Date: Mon, 11 Sep 2023 07:45:52 +0530 Subject: [PATCH] make disabling engines work correctly with webui and show right capitalization in webui --- README.md | 1 - cmd/langlist.go | 2 +- cmd/translate.go | 4 ++-- pages/api.go | 2 +- pages/index.go | 36 +++++++++++++++++++++++++++++++++--- views/index.html | 9 +++++---- 6 files changed, 42 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 0bd820f..457e2ff 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,6 @@ You can find it in /api/swagger of any instance ([example](https://mozhi.aryak.m Features of Mozhi can be customized and toggled on/off using Environment Variables. - `MOZHI_PORT`: Port the webserver listens on (if hosting API) -- `MOZHI_USER_AGENT`: Change user agent used to make HTTP requests - `MOZHI_LIBRETRANSLATE_URL`: URL of Libretranslate instance (Example: `MOZHI_LIBRETRANSLATE_URL=https://lt.psf.lt`) These envvars turn off/on engines. By default all of them are enabled. diff --git a/cmd/langlist.go b/cmd/langlist.go index b408a18..6d9d143 100644 --- a/cmd/langlist.go +++ b/cmd/langlist.go @@ -3,7 +3,7 @@ package cmd import ( "fmt" - libmozhi "codeberg.org/aryak/libmozhi" + "codeberg.org/aryak/libmozhi" "github.com/ktr0731/go-fuzzyfinder" "github.com/spf13/cobra" diff --git a/cmd/translate.go b/cmd/translate.go index de2bb80..e4d6682 100644 --- a/cmd/translate.go +++ b/cmd/translate.go @@ -4,7 +4,7 @@ import ( "encoding/json" "fmt" - libmozhi "codeberg.org/aryak/libmozhi" + "codeberg.org/aryak/libmozhi" "github.com/spf13/cobra" ) @@ -72,7 +72,7 @@ func init() { rootCmd.AddCommand(translateCmd) translateCmd.Flags().SortFlags = false - translateCmd.Flags().StringVarP(&engine, "engine", "e", "", "[google|libre|reverso|deepl|watson|yandex|mymemory|duckduckgo]") + translateCmd.Flags().StringVarP(&engine, "engine", "e", "", "[all|google|libre|reverso|deepl|watson|yandex|mymemory|duckduckgo]") translateCmd.Flags().StringVarP(&source, "source", "s", "", "Source language. Use langlist command to get code for your language") translateCmd.Flags().StringVarP(&dest, "dest", "t", "", "Target language. Use langlist command to get code for your language") translateCmd.Flags().StringVarP(&query, "query", "q", "", "Text to be translated") diff --git a/pages/api.go b/pages/api.go index e11c000..6069515 100644 --- a/pages/api.go +++ b/pages/api.go @@ -1,7 +1,7 @@ package pages import ( - libmozhi "codeberg.org/aryak/libmozhi" + "codeberg.org/aryak/libmozhi" "codeberg.org/aryak/mozhi/utils" "github.com/gofiber/fiber/v2" ) diff --git a/pages/index.go b/pages/index.go index abd8326..d3d4af2 100644 --- a/pages/index.go +++ b/pages/index.go @@ -3,18 +3,48 @@ package pages import ( "codeberg.org/aryak/libmozhi" "github.com/gofiber/fiber/v2" + "os" ) +func envTrueNoExist(env string) bool { + if _, ok := os.LookupEnv(env); ok == false || os.Getenv(env) == "true" { + return true + } + return false +} + +func engineList() map[string]string { + engines := map[string]string{"google":"Google", "deepl": "DeepL", "duckduckgo": "DuckDuckGo", "libre": "LibreTranslate", "mymemory": "MyMemory", "reverso": "Reverso", "watson": "Watson", "yandex": "Yandex"} + if envTrueNoExist("MOZHI_GOOGLE_ENABLED") == false { + delete(engines,"google") + } else if envTrueNoExist("MOZHI_DEEPL_ENABLED") == false { + delete(engines,"deepl") + } else if envTrueNoExist("MOZHI_DUCKDUCKGO_ENABLED") == false { + delete(engines,"duckduckgo") + } else if envTrueNoExist("MOZHI_LIBRETRANSLATE_ENABLED") == false || envTrueNoExist("MOZHI_LIBRETRANSLATE_URL") { + delete(engines,"libre") + } else if envTrueNoExist("MOZHI_MYMEMORY_ENABLED") == false { + delete(engines,"mymemory") + } else if envTrueNoExist("MOZHI_REVERSO_ENABLED") == false { + delete(engines,"reverso") + } else if envTrueNoExist("MOZHI_WATSON_ENABLED") == false { + delete(engines,"watson") + } else if envTrueNoExist("MOZHI_YANDEX_ENABLED") == false { + delete(engines,"yandex") + } + return engines +} + func HandleIndex(c *fiber.Ctx) error { - engines := []string{"google", "deepl", "duckduckgo", "libretranslate", "mymemory", "reverso", "watson", "yandex"} + engines := engineList() var engine string var originalText string if c.Query("engine") == "" { engine = "google" } if c.Query("engine") != "" { - for _, name := range engines { - if c.Query("engine") == name { + for key, _ := range engines { + if c.Query("engine") == key { engine = c.Query("engine") } } diff --git a/views/index.html b/views/index.html index 2e1e005..9543732 100644 --- a/views/index.html +++ b/views/index.html @@ -2,11 +2,12 @@
- Translate with: {{.Engine}} + {{range $key, $value := .enginesNames}} {{ if eq $.Engine $key }}Translate + with: {{$value}} {{end}} {{end}}