diff options
Diffstat (limited to 'pkg/bpod')
-rw-r--r-- | pkg/bpod/json.go | 55 | ||||
-rw-r--r-- | pkg/bpod/print.go | 14 |
2 files changed, 69 insertions, 0 deletions
diff --git a/pkg/bpod/json.go b/pkg/bpod/json.go new file mode 100644 index 0000000..4d74668 --- /dev/null +++ b/pkg/bpod/json.go @@ -0,0 +1,55 @@ +package bpod + +import ( + "encoding/json" + "fmt" + "math/rand" + + "framagit.org/andinus/cetus/pkg/cetus" +) + +type Res 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"` +} + +type List struct { + Photos []Res `json:"images"` +} + +// UnmarshalJson will take body as input & unmarshal it to res +func UnmarshalJson(body string) (Res, error) { + list := List{} + res := Res{} + + err := json.Unmarshal([]byte(body), &list) + if err != nil { + return res, fmt.Errorf("UnmarshalJson failed\n%s", err.Error()) + } + + res = list.Photos[rand.Intn(len(list.Photos))] + return res, nil +} + +// GetJson returns json response received from the api +func GetJson(reqInfo map[string]string) (string, error) { + params := make(map[string]string) + params["format"] = "js" + params["n"] = "1" + + // if random is true then fetch 7 photos + if reqInfo["random"] == "true" { + params["n"] = "7" + + } + + body, err := cetus.GetRes(reqInfo["api"], params) + return string(body), err +} diff --git a/pkg/bpod/print.go b/pkg/bpod/print.go new file mode 100644 index 0000000..75bf948 --- /dev/null +++ b/pkg/bpod/print.go @@ -0,0 +1,14 @@ +package bpod + +import ( + "fmt" +) + +// Print will print the json output +func Print(res Res) { + fmt.Printf("Title: %s\n\n", res.Title) + fmt.Printf("Copyright: %s\n", res.Copyright) + fmt.Printf("Copyright Link: %s\n", res.CopyrightLink) + fmt.Printf("Date: %s\n\n", res.StartDate) + fmt.Printf("URL: %s\n", res.Url) +} |