package main import ( "encoding/json" "fmt" "text/template" "net/http" "os" ) const ( URL = "http://www.omdbapi.com" KEY = "fa22ab55" ) type SearchRes struct { Title string `json:"Title"` Year string `json:"Year"` Genre string `json:"Genre"` Ratings []Ratings } type Ratings struct { Source string `json:"Source"` Value string `json:"Value"` } const templ = ` ======================= Title: {{.Title}} Year: {{.Year}} Genre: {{.Genre}} Rating: {{range .Ratings}} Source: {{.Source}} Rating: {{.Value}} {{end}} ======================= ` var report = template.Must(template.New("MovieReport").Parse(templ)) func Search(s string) (SearchRes,error) { resp,err := http.Get(URL + "?apikey=" + KEY + "&t=" + s) if err != nil { return SearchRes{},err } var res SearchRes if err := json.NewDecoder(resp.Body).Decode(&res); err != nil { fmt.Print("Error in unmarshalling ",err) } return res,nil } func main() { arg := os.Args[1] // fmt.Println(arg) res,_ := Search(arg) if err := report.Execute(os.Stdout,res); err != nil { fmt.Printf("Cannot show report ",err) } }