Adding proper use of url package in Http package and more fixes

This commit is contained in:
Eefret 2014-09-26 17:34:33 -04:00
parent 20b1904f2d
commit ebb45fff90

44
imdb.go
View file

@ -20,15 +20,14 @@ import (
"encoding/json"
"errors"
"fmt"
//"log"
"net/http"
"strings"
"net/url"
)
//=======================================================================
// Const
//=======================================================================
const baseUrl string = "http://www.omdbapi.com/?"
const baseUrl string = "http://www.omdbapi.com"
const plot string = "full"
const tomatoes string = "true"
@ -108,7 +107,7 @@ func SearchMovies(title string, year string) (*SearchResponse, error) {
r := new(SearchResponse)
err = json.NewDecoder(resp.Body).Decode(r)
if err != nil {
return nil, err
}
@ -129,7 +128,7 @@ func GetMovieByTitle(title string, year string) (*MovieResult, error) {
r := new(MovieResult)
err = json.NewDecoder(resp.Body).Decode(r)
if err != nil {
return nil, err
}
@ -149,7 +148,7 @@ func GetMovieByImdbId(id string) (*MovieResult, error) {
r := new(MovieResult)
err = json.NewDecoder(resp.Body).Decode(r)
if err != nil {
return nil, err
}
@ -165,20 +164,31 @@ func omdbApiRequest(s string, i string, t string, y string) (resp *http.Response
//t = Title Parameter, if this is != nil then its a getMovieByTitle
//y = Year Parameter, Optional data for s and t search
//var res http.Response
var url string
if s != "" {
s = strings.Replace(s, " ", "%20", -1)
url = fmt.Sprintf(baseUrl+"s=%s&y=%s", s, y)
} else if i != "" {
url = fmt.Sprintf(baseUrl+"i=%s&plot=%s&tomatoes=%s", i, plot, tomatoes)
} else if t != "" {
t = strings.Replace(t, " ", "%20", -1)
url = fmt.Sprintf(baseUrl+"t=%s&plot=%s&tomatoes=%s&y=%s", t, plot, tomatoes, y)
var Url *url.URL
Url, err = url.Parse(baseUrl)
if err != nil {
return nil, err
}
Url.Path += "/"
parameters := url.Values{}
if len(s) > 0 {
parameters.Add("s", s)
parameters.Add("y", y)
} else if len(i) > 0 {
parameters.Add("i", i)
parameters.Add("plot", plot)
parameters.Add("tomatoes", tomatoes)
} else if len(t) > 0 {
parameters.Add("t", t)
parameters.Add("plot", plot)
parameters.Add("tomatoes", tomatoes)
parameters.Add("y", y)
} else {
return nil, errors.New("Invalid Request")
}
//log.Print(url) //DEBUG
res, err := http.Get(url)
Url.RawQuery = parameters.Encode()
res, err := http.Get(Url.String())
err = checkErrorStatus(res.StatusCode)
if err != nil {
return nil, err