mirror of
https://github.com/simon-ding/polaris.git
synced 2026-06-08 11:07:42 +08:00
feat: add name suggesting
This commit is contained in:
@@ -76,6 +76,7 @@ func (s *Server) Serve() error {
|
||||
tv.GET("/record/:id", HttpHandler(s.GetMediaDetails))
|
||||
tv.DELETE("/record/:id", HttpHandler(s.DeleteFromWatchlist))
|
||||
tv.GET("/resolutions", HttpHandler(s.GetAvailableResolutions))
|
||||
tv.GET("/suggest/:tmdb_id", HttpHandler(s.SuggestedSeriesFolderName))
|
||||
}
|
||||
indexer := api.Group("/indexer")
|
||||
{
|
||||
|
||||
@@ -4,7 +4,9 @@ import (
|
||||
"fmt"
|
||||
"polaris/db"
|
||||
"polaris/log"
|
||||
"polaris/pkg/utils"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/pkg/errors"
|
||||
@@ -35,3 +37,36 @@ func (s *Server) DeleteStorage(c *gin.Context) (interface{}, error) {
|
||||
err = s.db.DeleteStorage(id)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (s *Server) SuggestedSeriesFolderName(c *gin.Context) (interface{}, error) {
|
||||
ids := c.Param("tmdb_id")
|
||||
id, err := strconv.Atoi(ids)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("id is not int: %v", ids)
|
||||
}
|
||||
var name, originalName, year string
|
||||
d, err := s.MustTMDB().GetTvDetails(id, s.language)
|
||||
if err != nil {
|
||||
d1, err := s.MustTMDB().GetMovieDetails(id, s.language)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "get movie details")
|
||||
}
|
||||
name = d1.Title
|
||||
originalName = d1.OriginalTitle
|
||||
year = strings.Split(d1.ReleaseDate, "-")[0]
|
||||
|
||||
} else {
|
||||
name = d.Name
|
||||
originalName = d.OriginalName
|
||||
year = strings.Split(d.FirstAirDate, "-")[0]
|
||||
}
|
||||
name = fmt.Sprintf("%s %s", name, originalName)
|
||||
|
||||
if !utils.IsChineseChar(name) {
|
||||
name = originalName
|
||||
}
|
||||
if year != "" {
|
||||
name = fmt.Sprintf("%s (%s)", name, year)
|
||||
}
|
||||
return gin.H{"name": name}, nil
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ type addWatchlistIn struct {
|
||||
TmdbID int `json:"tmdb_id" binding:"required"`
|
||||
StorageID int `json:"storage_id" `
|
||||
Resolution string `json:"resolution" binding:"required"`
|
||||
Folder string `json:"folder" binding:"required"`
|
||||
}
|
||||
|
||||
func (s *Server) AddTv2Watchlist(c *gin.Context) (interface{}, error) {
|
||||
@@ -109,6 +110,7 @@ func (s *Server) AddTv2Watchlist(c *gin.Context) (interface{}, error) {
|
||||
AirDate: detail.FirstAirDate,
|
||||
Resolution: string(in.Resolution),
|
||||
StorageID: in.StorageID,
|
||||
TargetDir: in.Folder,
|
||||
}, epIds)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "add to list")
|
||||
|
||||
Reference in New Issue
Block a user