From 202aca33bb3a94774d31d3f6ab772e1fb859bd93 Mon Sep 17 00:00:00 2001 From: Alexey Yerin Date: Mon, 18 Jan 2021 23:25:21 +0300 Subject: [PATCH] Move request logic to a different function --- translate.go | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/translate.go b/translate.go index 6354e79..a68c19a 100644 --- a/translate.go +++ b/translate.go @@ -10,6 +10,26 @@ import ( "golang.org/x/net/html" ) +func doRequest(settings *TranslateSettings, reqUrl string) (*http.Response, error) { + client := &http.Client{} + + if settings.proxy != nil { + tr := &http.Transport{Proxy: http.ProxyURL(settings.proxy)} + client.Transport = tr + } + + req, err := http.NewRequest("GET", reqUrl, nil) + if err != nil { + return nil, err + } + + req.Header["User-Agent"] = []string{settings.userAgent} + + resp, err := client.Do(req) + + return resp, err +} + // Requests and parses translation from Google func Translate(settings *TranslateSettings, fromLang, toLang, text string) (string, error) { // Escape parameters before embedding in URL @@ -19,21 +39,7 @@ func Translate(settings *TranslateSettings, fromLang, toLang, text string) (stri reqUrl := fmt.Sprintf("https://translate.google.com/m?sl=%s&tl=%s&q=%s", fromLang, toLang, text) - client := &http.Client{} - - if settings.proxy != nil { - tr := &http.Transport{ Proxy: http.ProxyURL(settings.proxy) } - client.Transport = tr - } - - req, err := http.NewRequest("GET", reqUrl, nil) - if err != nil { - return "", err - } - - req.Header["User-Agent"] = []string{settings.userAgent} - - resp, err := client.Do(req) + resp, err := doRequest(settings, reqUrl) if err != nil { return "", fmt.Errorf("Request failed: %v", err) }