From df42efc81dfd06b38d6e1ec8627bd7f2e00833c7 Mon Sep 17 00:00:00 2001 From: eeeXun Date: Mon, 13 Feb 2023 21:09:48 +0800 Subject: [PATCH] refactor: declare data as `map[string]interface` instead of `interface` data in Translate function of ApertiumTranslate and ArgosTranslate is a map[string]interface, so no need to declare it as interface then convert it to map[string]interface --- internal/translate/apertiumtranslate/translator.go | 6 +++--- internal/translate/argostranslate/translator.go | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/internal/translate/apertiumtranslate/translator.go b/internal/translate/apertiumtranslate/translator.go index cc8b464..af7d891 100644 --- a/internal/translate/apertiumtranslate/translator.go +++ b/internal/translate/apertiumtranslate/translator.go @@ -51,7 +51,7 @@ func (t *ApertiumTranslate) SwapLang() { } func (t *ApertiumTranslate) Translate(message string) (translation, definition, partOfSpeech string, err error) { - var data interface{} + var data map[string]interface{} urlStr := fmt.Sprintf( textURL, @@ -71,11 +71,11 @@ func (t *ApertiumTranslate) Translate(message string) (translation, definition, return "", "", "", err } - if len(data.(map[string]interface{})) > 0 { + if len(data) > 0 { switch res.StatusCode { case 200: translation += fmt.Sprintf("%v", - data.(map[string]interface{})["responseData"].(map[string]interface{})["translatedText"]) + data["responseData"].(map[string]interface{})["translatedText"]) default: return "", "", "", errors.New( fmt.Sprintf("%s does not support translate from %s to %s.\nSee available pair on %s", diff --git a/internal/translate/argostranslate/translator.go b/internal/translate/argostranslate/translator.go index 7afcc86..4703e0b 100644 --- a/internal/translate/argostranslate/translator.go +++ b/internal/translate/argostranslate/translator.go @@ -51,7 +51,7 @@ func (t *ArgosTranslate) SwapLang() { } func (t *ArgosTranslate) Translate(message string) (translation, definition, partOfSpeech string, err error) { - var data interface{} + var data map[string]interface{} res, err := http.PostForm(textURL, url.Values{ @@ -70,9 +70,8 @@ func (t *ArgosTranslate) Translate(message string) (translation, definition, par return "", "", "", err } - if len(data.(map[string]interface{})) > 0 { - translation += fmt.Sprintf("%v", - data.(map[string]interface{})["translatedText"]) + if len(data) > 0 { + translation += fmt.Sprintf("%v", data["translatedText"]) return translation, definition, partOfSpeech, nil }