diff --git a/src/internal/backend/episode_torrents.go b/src/internal/backend/episode_torrents.go index acd3320..b8530bf 100644 --- a/src/internal/backend/episode_torrents.go +++ b/src/internal/backend/episode_torrents.go @@ -96,10 +96,11 @@ func GetEpisodeTorrents(db *sqlx.DB, imdbID string, season, episode int) ([]polo func UpsertEpisodeTorrent(db *sqlx.DB, torrent *polochon.Torrent, imdbID string, season, episode int) error { // Create the EpisodeTorrent ready to be put in db eDB := NewEpisodeTorrentDB(torrent, imdbID, season, episode) - _, err := db.NamedQuery(upsertEpisodeTorrentQuery, eDB) + r, err := db.NamedQuery(upsertEpisodeTorrentQuery, eDB) if err != nil { return err } + defer r.Close() return nil } diff --git a/src/internal/backend/episodes.go b/src/internal/backend/episodes.go index e7a521a..afa42a7 100644 --- a/src/internal/backend/episodes.go +++ b/src/internal/backend/episodes.go @@ -128,14 +128,10 @@ func GetEpisodes(db *sqlx.DB, pShow *polochon.Show, log *logrus.Entry) error { // UpsertEpisode upserts the episode func UpsertEpisode(db *sqlx.DB, showEpisode *polochon.ShowEpisode) error { e := NewEpisodeFromPolochon(showEpisode) - var id string r, err := db.NamedQuery(upsertEpisodeQuery, e) if err != nil { return err } - for r.Next() { - r.Scan(&id) - } - e.ID = id + defer r.Close() return nil } diff --git a/src/internal/backend/explorer.go b/src/internal/backend/explorer.go index e8a1160..d59d9e7 100644 --- a/src/internal/backend/explorer.go +++ b/src/internal/backend/explorer.go @@ -39,9 +39,10 @@ func Explore(db *sqlx.DB, mtype, msrc, mcat string) (*Media, error) { // Upsert adds or updates the Media in the database func (m *Media) Upsert(db *sqlx.DB) error { - _, err := db.NamedQuery(upsertExternalMediaQuery, m) + r, err := db.NamedQuery(upsertExternalMediaQuery, m) if err != nil { return err } + defer r.Close() return nil } diff --git a/src/internal/backend/movie_torrents.go b/src/internal/backend/movie_torrents.go index a204f7c..071cd67 100644 --- a/src/internal/backend/movie_torrents.go +++ b/src/internal/backend/movie_torrents.go @@ -92,10 +92,11 @@ func GetMovieTorrents(db *sqlx.DB, imdbID string) ([]polochon.Torrent, error) { // UpsertMovieTorrent adds or updates MovieTorrent in db func UpsertMovieTorrent(db *sqlx.DB, t *polochon.Torrent, imdbID string) error { mDB := NewMovieTorrentDB(t, imdbID) - _, err := db.NamedQuery(upsertMovieTorrentQuery, mDB) + r, err := db.NamedQuery(upsertMovieTorrentQuery, mDB) if err != nil { return err } + defer r.Close() return nil } diff --git a/src/internal/backend/movie_wishlist.go b/src/internal/backend/movie_wishlist.go index 8b2615d..7def493 100644 --- a/src/internal/backend/movie_wishlist.go +++ b/src/internal/backend/movie_wishlist.go @@ -16,7 +16,7 @@ const ( isMovieWishlistedQueryByUserID = ` SELECT - movies.imdb_id + COUNT(*) FROM movies INNER JOIN movies_tracked ON movies.imdb_id=movies_tracked.imdb_id @@ -89,13 +89,13 @@ func (w *MovieWishlist) IsMovieInWishlist(imdbID string) bool { // IsMovieWishlisted returns true if the movie is wishlisted func IsMovieWishlisted(db *sqlx.DB, userID, imdbID string) (bool, error) { - var movies = []string{} + var count int // Check if the movie is wishlisted by the user - err := db.Select(&movies, isMovieWishlistedQueryByUserID, imdbID, userID) + err := db.Get(&count, isMovieWishlistedQueryByUserID, imdbID, userID) if err != nil { return false, err } - if len(movies) > 0 { + if count > 0 { return true, nil } @@ -117,7 +117,10 @@ func DeleteMovieFromWishlist(db *sqlx.DB, userID, imdbID string) error { if err != nil { return err } - count, _ := r.RowsAffected() + count, err := r.RowsAffected() + if err != nil { + return err + } if count != 1 { return fmt.Errorf("Unexpected number of row deleted: %d", count) } diff --git a/src/internal/backend/movies.go b/src/internal/backend/movies.go index 15880a8..a987328 100644 --- a/src/internal/backend/movies.go +++ b/src/internal/backend/movies.go @@ -87,10 +87,11 @@ func FillFromDB(mDB *MovieDB, pMovie *polochon.Movie) { // UpsertMovie upsert a polochon Movie in the database func UpsertMovie(db *sqlx.DB, pMovie *polochon.Movie) error { mDB := NewMovieDB(pMovie) - _, err := db.NamedQuery(upsertMovieQuery, mDB) + r, err := db.NamedQuery(upsertMovieQuery, mDB) if err != nil { return err } + defer r.Close() return nil } diff --git a/src/internal/backend/show_wishlist.go b/src/internal/backend/show_wishlist.go index ab0e6fc..33c9d8c 100644 --- a/src/internal/backend/show_wishlist.go +++ b/src/internal/backend/show_wishlist.go @@ -132,7 +132,10 @@ func DeleteShowFromWishlist(db *sqlx.DB, userID, imdbID string) error { if err != nil { return err } - count, _ := r.RowsAffected() + count, err := r.RowsAffected() + if err != nil { + return err + } if count != 1 { return fmt.Errorf("Unexpected number of row deleted: %d", count) } diff --git a/src/internal/backend/shows.go b/src/internal/backend/shows.go index fd4611a..bb11213 100644 --- a/src/internal/backend/shows.go +++ b/src/internal/backend/shows.go @@ -43,10 +43,11 @@ type ShowDB struct { func UpsertShow(db *sqlx.DB, s *polochon.Show) error { sDB := NewShowFromPolochon(s) // Upsert the show - _, err := db.NamedQuery(upsertShowQuery, sDB) + r, err := db.NamedQuery(upsertShowQuery, sDB) if err != nil { return err } + defer r.Close() for _, e := range s.Episodes { // Upsert its episodes diff --git a/src/internal/external_medias/external_medias.go b/src/internal/external_medias/external_medias.go index d2de14c..6d8bb5f 100644 --- a/src/internal/external_medias/external_medias.go +++ b/src/internal/external_medias/external_medias.go @@ -114,10 +114,9 @@ func RefreshShows(env *web.Env) { } } } - env.Log.Info("========================================================") // Iterate over the map of shows to refresh them for id := range showMap { - show := shows.New(id) + show := shows.New(id, env.Config.PublicDir) // Refresh the shows err := show.Refresh(env, env.Config.ShowDetailers) if err != nil { @@ -160,7 +159,6 @@ func RefreshMovies(env *web.Env) { } } } - env.Log.Info("========================================================") // Iterate over the map of movies to refresh them for id := range movieMap { movie := movies.New(id, nil, nil, false, env.Config.PublicDir) diff --git a/src/internal/external_medias/handlers.go b/src/internal/external_medias/handlers.go index 4d1dd04..76b5511 100644 --- a/src/internal/external_medias/handlers.go +++ b/src/internal/external_medias/handlers.go @@ -170,7 +170,7 @@ func ExploreMovies(env *web.Env, w http.ResponseWriter, r *http.Request) error { source := r.FormValue("source") // Default source if source == "" { - source = "yts" + source = "trakttv" } category := r.FormValue("category") @@ -210,7 +210,7 @@ func ExploreShows(env *web.Env, w http.ResponseWriter, r *http.Request) error { category := r.FormValue("category") // Default category if category == "" { - category = "popular" + category = "rating" } v := auth.GetCurrentUser(r, env.Log) diff --git a/src/internal/movies/handlers.go b/src/internal/movies/handlers.go index 39a83c1..f293bf0 100644 --- a/src/internal/movies/handlers.go +++ b/src/internal/movies/handlers.go @@ -11,7 +11,6 @@ import ( "github.com/gorilla/mux" "github.com/odwrtw/papi" polochon "github.com/odwrtw/polochon/lib" - "github.com/odwrtw/polochon/modules/pam" "gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/auth" "gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/backend" @@ -42,17 +41,12 @@ func PolochonMoviesHandler(env *web.Env, w http.ResponseWriter, r *http.Request) return err } - detailer, err := pam.New(&pam.Params{ - Endpoint: polochonConfig.URL, - Token: polochonConfig.Token, - }) - // Get details with the polochon Detailer for each polochon.Movies we have for _, m := range movies { // First try from the db first := []polochon.Detailer{env.Backend.Detailer} // Then try from the polochon detailer - detailers := []polochon.Detailer{detailer} + detailers := env.Config.MovieDetailers err := m.GetAndFetch(env, first, detailers) if err != nil { env.Log.Error(err) diff --git a/src/internal/shows/shows.go b/src/internal/shows/shows.go index 02ea1ae..20d19a0 100644 --- a/src/internal/shows/shows.go +++ b/src/internal/shows/shows.go @@ -56,11 +56,12 @@ func (s *Show) MarshalJSON() ([]byte, error) { } // New returns a new Show with a polochon ShowConfig -func New(imdbID string) *Show { +func New(imdbID string, publicDir string) *Show { return &Show{ Show: &polochon.Show{ ImdbID: imdbID, }, + publicDir: publicDir, } } diff --git a/src/public/js/reducers/shows.js b/src/public/js/reducers/shows.js index 3349b09..d6ef5cb 100644 --- a/src/public/js/reducers/shows.js +++ b/src/public/js/reducers/shows.js @@ -95,7 +95,7 @@ function updateEpisode(show, fetching, data = null) { let seasonIndex = show.seasons.map((el) => el.season).indexOf(data.season.toString()); let episodeIndex = show.seasons[seasonIndex].episodes.map((el) => el.episode).indexOf(data.episode); - if ('id' in data) { + if ('imdb_id' in data) { show.seasons[seasonIndex].episodes[episodeIndex] = data; } show.seasons[seasonIndex].episodes[episodeIndex].fetching = fetching;