From 2f0497ebc686727d3e0e1b8556c7ca8b111d38c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Sat, 11 Apr 2020 19:07:11 +0200 Subject: [PATCH] Get the movie poster with a get details --- backend/main.go | 6 +++++- backend/models/backend.go | 6 ++++-- backend/models/detailer.go | 12 ++++++++++++ backend/movies/movies.go | 15 +++------------ 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/backend/main.go b/backend/main.go index d152ec8..ade4f35 100644 --- a/backend/main.go +++ b/backend/main.go @@ -49,7 +49,11 @@ func run() error { if err != nil { return err } - backend := &models.Backend{Database: db} + backend := &models.Backend{ + Database: db, + PublicDir: cf.PublicDir, + ImgURLPrefix: cf.ImgURLPrefix, + } // Generate auth params authParams := auth.Params{ diff --git a/backend/models/backend.go b/backend/models/backend.go index c80b6c1..a758429 100644 --- a/backend/models/backend.go +++ b/backend/models/backend.go @@ -7,8 +7,10 @@ import ( // Backend represents the data backend type Backend struct { - Database *sqlx.DB - configured bool + Database *sqlx.DB + PublicDir string + ImgURLPrefix string + configured bool } // Name implements the Module interface diff --git a/backend/models/detailer.go b/backend/models/detailer.go index 3579591..f6a043a 100644 --- a/backend/models/detailer.go +++ b/backend/models/detailer.go @@ -2,6 +2,9 @@ package models import ( "errors" + "fmt" + "os" + "path/filepath" polochon "github.com/odwrtw/polochon/lib" "github.com/sirupsen/logrus" @@ -28,6 +31,15 @@ func (b *Backend) GetMovieDetails(pMovie *polochon.Movie, log *logrus.Entry) err return err } + // Add the movie images + imgURL := fmt.Sprintf("movies/%s.jpg", pMovie.ImdbID) + imgFile := filepath.Join(b.PublicDir, "img", imgURL) + posterURL := "" + if _, err := os.Stat(imgFile); !os.IsNotExist(err) { + posterURL = b.ImgURLPrefix + imgURL + } + pMovie.Thumb = posterURL + log.Debugf("got movie %s from backend", pMovie.ImdbID) return nil diff --git a/backend/movies/movies.go b/backend/movies/movies.go index 5a7f2a4..7955916 100644 --- a/backend/movies/movies.go +++ b/backend/movies/movies.go @@ -4,7 +4,6 @@ import ( "database/sql" "encoding/json" "fmt" - "os" "path/filepath" "time" @@ -43,8 +42,9 @@ func (m *Movie) MarshalJSON() ([]byte, error) { VideoCodec string `json:"video_codec"` Container string `json:"container"` }{ - Alias: (*Alias)(m), - PosterURL: m.PosterURL(), + Alias: (*Alias)(m), + // TODO: remove this field to use m.Thumb + PosterURL: m.Thumb, Subtitles: []subtitles.Subtitle{}, } @@ -244,15 +244,6 @@ func (m *Movie) imgFile() string { return filepath.Join(m.publicDir, "img", m.imgURL()) } -// PosterURL returns the image URL or the default image if the poster is not yet downloaded -func (m *Movie) PosterURL() string { - // Check if the movie image exists - if _, err := os.Stat(m.imgFile()); os.IsNotExist(err) { - return "" - } - return m.imgURLPrefix + m.imgURL() -} - // getPolochonMovies returns an array of the user's polochon movies func getPolochonMovies(user *models.User, env *web.Env) ([]*Movie, error) { movies := []*Movie{}