diff --git a/backend/movies/movies.go b/backend/movies/movies.go index 7507989..6a04234 100644 --- a/backend/movies/movies.go +++ b/backend/movies/movies.go @@ -146,7 +146,7 @@ func (m *Movie) Refresh(env *web.Env, detailers []polochon.Detailer) error { } // Download poster - err = web.Download(m.Thumb, m.imgFile()) + err = web.Download(m.Thumb, m.imgFile(), true) if err != nil { log.Errorf("got error trying to download the poster %q", err) } diff --git a/backend/shows/shows.go b/backend/shows/shows.go index 0ffe180..09f0ee2 100644 --- a/backend/shows/shows.go +++ b/backend/shows/shows.go @@ -7,12 +7,12 @@ import ( "path/filepath" "strings" - "github.com/odwrtw/papi" - "github.com/odwrtw/polochon/lib" - "github.com/sirupsen/logrus" "git.quimbo.fr/odwrtw/canape/backend/backend" "git.quimbo.fr/odwrtw/canape/backend/users" "git.quimbo.fr/odwrtw/canape/backend/web" + "github.com/odwrtw/papi" + polochon "github.com/odwrtw/polochon/lib" + "github.com/sirupsen/logrus" ) // Show represents a show @@ -163,15 +163,15 @@ func (s *Show) GetImageURL(imgType string) string { // downloadImages will download the show images func (s *Show) downloadImages(env *web.Env) { // Download the banner - err := web.Download(s.Show.Banner, s.imgFile("banner")) + err := web.Download(s.Show.Banner, s.imgFile("banner"), false) if err != nil { env.Log.Errorf("failed to dowload banner: %s", err) } - err = web.Download(s.Show.Fanart, s.imgFile("fanart")) + err = web.Download(s.Show.Fanart, s.imgFile("fanart"), false) if err != nil { env.Log.Errorf("failed to dowload fanart: %s", err) } - err = web.Download(s.Show.Poster, s.imgFile("poster")) + err = web.Download(s.Show.Poster, s.imgFile("poster"), true) if err != nil { env.Log.Errorf("failed to dowload poster: %s", err) } diff --git a/backend/web/download.go b/backend/web/download.go index d9d90e3..1e906e1 100644 --- a/backend/web/download.go +++ b/backend/web/download.go @@ -3,7 +3,6 @@ package web import ( "image" "image/jpeg" - "io" "net/http" "os" "path" @@ -13,7 +12,7 @@ import ( ) // Download used for downloading file -var Download = func(srcURL, dest string) error { +var Download = func(srcURL, dest string, scale bool) error { if err := createDirectory(dest); err != nil { return err } @@ -27,11 +26,15 @@ var Download = func(srcURL, dest string) error { } defer resp.Body.Close() - img, err := resizeImage(resp.Body) + image, _, err := image.Decode(resp.Body) if err != nil { return err } + if scale { + image = resize.Resize(300, 0, image, resize.Lanczos3) + } + // Create the file file, err := os.Create(dest) if err != nil { @@ -39,19 +42,10 @@ var Download = func(srcURL, dest string) error { } defer file.Close() - return jpeg.Encode(file, img, nil) + return jpeg.Encode(file, image, nil) } // createDirectory creates the destination directory func createDirectory(dest string) error { return os.MkdirAll(path.Dir(dest), os.ModePerm) } - -func resizeImage(img io.Reader) (image.Image, error) { - image, _, err := image.Decode(img) - if err != nil { - return nil, err - } - - return resize.Resize(300, 0, image, resize.Lanczos3), nil -}