diff options
Diffstat (limited to 'pkg/bing')
-rw-r--r-- | pkg/bing/bpod.go | 77 |
1 files changed, 12 insertions, 65 deletions
diff --git a/pkg/bing/bpod.go b/pkg/bing/bpod.go index 041eef7..c7ee79d 100644 --- a/pkg/bing/bpod.go +++ b/pkg/bing/bpod.go @@ -1,76 +1,23 @@ package bing import ( - "encoding/json" - "fmt" - "io/ioutil" - "net/http" "time" -) - -// Photo holds responses -type Photo struct { - StartDate string `json:"startdate"` - FullStartDate string `json:"fullstartdate"` - EndDate string `json:"enddate"` - URL string `json:"url"` - URLBase string `json:"urlbase"` - Copyright string `json:"copyright"` - CopyrightLink string `json:"copyrightlink"` - Title string `json:"title"` - Hsh string `json:"hsh"` -} - -// BPOD holds list of response -type BPOD struct { - Photos []Photo `json:"images"` -} -// BPODPath returns Bing Photo of the Day responses -func BPODPath(bpodInfo map[string]string, timeout time.Duration) (BPOD, error) { - var err error - bpodRes := BPOD{} - - client := http.Client{ - Timeout: time.Second * timeout, - } - - req, err := http.NewRequest(http.MethodGet, bpodInfo["api"], nil) - if err != nil { - return bpodRes, err - } - q := req.URL.Query() - q.Add("format", "js") - - // if random flag is passed then fetch 7 photos - if bpodInfo["random"] == "true" { - q.Add("n", "7") - } else { - q.Add("n", "1") - } - req.URL.RawQuery = q.Encode() - - res, err := client.Do(req) - - if err != nil { - return bpodRes, err - } - defer res.Body.Close() + "framagit.org/andinus/cetus/pkg/cetus" +) - resBody, err := ioutil.ReadAll(res.Body) - if err != nil { - return bpodRes, err - } +// GetBpodJson returns json response received from the api +func GetBpodJson(reqInfo map[string]string, t time.Duration) (string, error) { + params := make(map[string]string) + params["format"] = "js" + params["n"] = "1" - err = json.Unmarshal([]byte(resBody), &bpodRes) - if err != nil { - return bpodRes, err - } + // if random is true then fetch 7 photos + if reqInfo["random"] == "true" { + params["n"] = "7" - if res.StatusCode != 200 { - return bpodRes, fmt.Errorf("Unexpected response status code received: %d %s", - res.StatusCode, http.StatusText(res.StatusCode)) } - return bpodRes, err + body, err := cetus.GetRes(reqInfo["api"], params, t) + return string(body), err } |