From a2ac174314bbea8b20d4315b77108182e0a4f860 Mon Sep 17 00:00:00 2001 From: Arya Kiran Date: Tue, 27 Aug 2024 13:02:34 +0530 Subject: [PATCH] add some engines support to mozhi CLI --- cmd/translate.go | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/cmd/translate.go b/cmd/translate.go index 8dce38b..10c7b90 100644 --- a/cmd/translate.go +++ b/cmd/translate.go @@ -2,6 +2,7 @@ package cmd import ( "encoding/json" + "strings" "fmt" "codeberg.org/aryak/libmozhi" @@ -11,6 +12,7 @@ import ( var ( engine string + engines string query string source string dest string @@ -29,10 +31,6 @@ func printEngineResult(result libmozhi.LangOut, printPlaceHolderAndEngineName bo } fmt.Println("Source Language: " + result.SourceLang) fmt.Println("Target Language: " + result.TargetLang) - - if printPlaceHolderAndEngineName { - fmt.Println("-----------------------------------") - } } func printRaw(data interface{}) { @@ -56,6 +54,25 @@ var translateCmd = &cobra.Command{ for _, result := range data { printEngineResult(result, true) } + fmt.Println("-----------------------------------") + } + } else if engine == "some" { + if engines != "" { + data, err := libmozhi.TranslateSome(strings.Split(engines, ","), dest, source, query) + if rawjson { + printRaw(data) + } else { + if err != nil { + fmt.Println(err) + } else { + for _, result := range data { + printEngineResult(result, true) + } + fmt.Println("-----------------------------------") + } + } + } else { + fmt.Println("Please add the --engines / -E argument when using the engine `some`") } } else { data, err := libmozhi.Translate(engine, dest, source, query) @@ -76,13 +93,13 @@ func init() { rootCmd.AddCommand(translateCmd) translateCmd.Flags().SortFlags = false - translateCmd.Flags().StringVarP(&engine, "engine", "e", "", "[all|google|libre|reverso|deepl|yandex|mymemory|duckduckgo]") + translateCmd.Flags().StringVarP(&engine, "engine", "e", "", "[all|some|google|libre|reverso|deepl|yandex|mymemory|duckduckgo]") + translateCmd.Flags().StringVarP(&engines, "engines", "E", "", "Engines to select. This flag is to be used with the `some` engine only") 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") translateCmd.Flags().BoolVarP(&rawjson, "raw", "r", false, "Return output as json") - translateCmd.MarkFlagRequired("engine") translateCmd.MarkFlagRequired("source") translateCmd.MarkFlagRequired("dest") translateCmd.MarkFlagRequired("query")