feat: search paged

This commit is contained in:
Simon Ding
2024-07-19 15:01:15 +08:00
parent 881d40f891
commit 7c299677a0

View File

@@ -19,6 +19,7 @@ import (
type searchTvParam struct { type searchTvParam struct {
Query string `form:"query"` Query string `form:"query"`
Page int `form:"page"`
} }
func (s *Server) SearchTvSeries(c *gin.Context) (interface{}, error) { func (s *Server) SearchTvSeries(c *gin.Context) (interface{}, error) {
@@ -34,13 +35,13 @@ func (s *Server) SearchTvSeries(c *gin.Context) (interface{}, error) {
return r, nil return r, nil
} }
func(s *Server) SearchMedia(c *gin.Context) (interface{}, error) { func (s *Server) SearchMedia(c *gin.Context) (interface{}, error) {
var q searchTvParam var q searchTvParam
if err := c.ShouldBindQuery(&q); err != nil { if err := c.ShouldBindQuery(&q); err != nil {
return nil, errors.Wrap(err, "bind query") return nil, errors.Wrap(err, "bind query")
} }
log.Infof("search media with keyword: %v", q.Query) log.Infof("search media with keyword: %v", q.Query)
r, err := s.MustTMDB().SearchMedia(q.Query, s.language, 1) r, err := s.MustTMDB().SearchMedia(q.Query, s.language, q.Page)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "search tv") return nil, errors.Wrap(err, "search tv")
} }
@@ -49,8 +50,8 @@ func(s *Server) SearchMedia(c *gin.Context) (interface{}, error) {
} }
type addWatchlistIn struct { type addWatchlistIn struct {
TmdbID int `json:"tmdb_id" binding:"required"` TmdbID int `json:"tmdb_id" binding:"required"`
StorageID int `json:"storage_id" ` StorageID int `json:"storage_id" `
Resolution string `json:"resolution" binding:"required"` Resolution string `json:"resolution" binding:"required"`
} }
@@ -99,16 +100,15 @@ func (s *Server) AddTv2Watchlist(c *gin.Context) (interface{}, error) {
} }
} }
r, err := s.db.AddMediaWatchlist(&ent.Media{ r, err := s.db.AddMediaWatchlist(&ent.Media{
TmdbID: int(detail.ID), TmdbID: int(detail.ID),
MediaType: media.MediaTypeTv, MediaType: media.MediaTypeTv,
NameCn: nameCn, NameCn: nameCn,
NameEn: nameEn, NameEn: nameEn,
OriginalName: detail.OriginalName, OriginalName: detail.OriginalName,
Overview: detail.Overview, Overview: detail.Overview,
AirDate: detail.FirstAirDate, AirDate: detail.FirstAirDate,
Resolution: string(in.Resolution), Resolution: string(in.Resolution),
StorageID: in.StorageID, StorageID: in.StorageID,
}, epIds) }, epIds)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "add to list") return nil, errors.Wrap(err, "add to list")
@@ -117,7 +117,7 @@ func (s *Server) AddTv2Watchlist(c *gin.Context) (interface{}, error) {
if err := s.downloadPoster(detail.PosterPath, r.ID); err != nil { if err := s.downloadPoster(detail.PosterPath, r.ID); err != nil {
log.Errorf("download poster error: %v", err) log.Errorf("download poster error: %v", err)
} }
if err := s.downloadBackdrop(detail.BackdropPath, r.ID,); err != nil { if err := s.downloadBackdrop(detail.BackdropPath, r.ID); err != nil {
log.Errorf("download poster error: %v", err) log.Errorf("download poster error: %v", err)
} }
@@ -148,18 +148,16 @@ func (s *Server) AddMovie2Watchlist(c *gin.Context) (interface{}, error) {
} }
log.Infof("find detail for movie id %d: %v", in.TmdbID, detail) log.Infof("find detail for movie id %d: %v", in.TmdbID, detail)
r, err := s.db.AddMediaWatchlist(&ent.Media{ r, err := s.db.AddMediaWatchlist(&ent.Media{
TmdbID: int(detail.ID), TmdbID: int(detail.ID),
MediaType: media.MediaTypeMovie, MediaType: media.MediaTypeMovie,
NameCn: nameCn, NameCn: nameCn,
NameEn: nameEn, NameEn: nameEn,
OriginalName: detail.OriginalTitle, OriginalName: detail.OriginalTitle,
Overview: detail.Overview, Overview: detail.Overview,
AirDate: detail.ReleaseDate, AirDate: detail.ReleaseDate,
Resolution: string(in.Resolution), Resolution: string(in.Resolution),
StorageID: in.StorageID, StorageID: in.StorageID,
}, nil) }, nil)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "add to list") return nil, errors.Wrap(err, "add to list")
@@ -224,7 +222,6 @@ func (s *Server) GetMovieWatchlist(c *gin.Context) (interface{}, error) {
return list, nil return list, nil
} }
func (s *Server) GetMediaDetails(c *gin.Context) (interface{}, error) { func (s *Server) GetMediaDetails(c *gin.Context) (interface{}, error) {
ids := c.Param("id") ids := c.Param("id")
id, err := strconv.Atoi(ids) id, err := strconv.Atoi(ids)