mirror of
https://github.com/simon-ding/polaris.git
synced 2026-06-09 03:27:39 +08:00
feat: use en name when cn name is not present
This commit is contained in:
@@ -3,6 +3,7 @@ package tmdb
|
|||||||
import (
|
import (
|
||||||
"polaris/log"
|
"polaris/log"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
tmdb "github.com/cyruzin/golang-tmdb"
|
tmdb "github.com/cyruzin/golang-tmdb"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
@@ -112,12 +113,46 @@ func (c *Client) SearchMedia(query string, lang string, page int) (*SearchResult
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) GetEposideDetail(id, seasonNumber, eposideNumber int, language string) (*tmdb.TVEpisodeDetails, error) {
|
func (c *Client) GetEposideDetail(id, seasonNumber, eposideNumber int, language string) (*tmdb.TVEpisodeDetails, error) {
|
||||||
|
|
||||||
d, err := c.tmdbClient.GetTVEpisodeDetails(id, seasonNumber, eposideNumber, withLangOption(language))
|
d, err := c.tmdbClient.GetTVEpisodeDetails(id, seasonNumber, eposideNumber, withLangOption(language))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if strings.HasSuffix(d.Name, "集") {
|
||||||
|
var detailEN *tmdb.TVEpisodeDetails
|
||||||
|
if language == "zh-CN" {
|
||||||
|
detailEN, err = c.tmdbClient.GetTVEpisodeDetails(id, seasonNumber, eposideNumber, withLangOption("en-US"))
|
||||||
|
if err != nil {
|
||||||
|
return d, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
d.Name = detailEN.Name
|
||||||
|
d.Overview = detailEN.Overview
|
||||||
|
}
|
||||||
|
|
||||||
return d, err
|
return d, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) GetSeasonDetails(id, seasonNumber int, language string) (*tmdb.TVSeasonDetails, error) {
|
func (c *Client) GetSeasonDetails(id, seasonNumber int, language string) (*tmdb.TVSeasonDetails, error) {
|
||||||
return c.tmdbClient.GetTVSeasonDetails(id, seasonNumber, withLangOption(language))
|
detailCN, err := c.tmdbClient.GetTVSeasonDetails(id, seasonNumber, withLangOption(language))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var detailEN *tmdb.TVSeasonDetails
|
||||||
|
if language == "zh-CN" {
|
||||||
|
detailEN, err = c.tmdbClient.GetTVSeasonDetails(id, seasonNumber, withLangOption("en-US"))
|
||||||
|
if err != nil {
|
||||||
|
return detailCN, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, ep := range detailCN.Episodes {
|
||||||
|
if strings.HasSuffix(ep.Name, "集") {
|
||||||
|
detailCN.Episodes[i].Name = detailEN.Episodes[i].Name
|
||||||
|
detailCN.Episodes[i].Overview = detailEN.Episodes[i].Overview
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return detailCN, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) GetTVAlternativeTitles(id int, language string) (*tmdb.TVAlternativeTitles, error) {
|
func (c *Client) GetTVAlternativeTitles(id int, language string) (*tmdb.TVAlternativeTitles, error) {
|
||||||
|
|||||||
@@ -168,6 +168,7 @@ func (s *Server) AddMovie2Watchlist(c *gin.Context) (interface{}, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "add dummy episode")
|
return nil, errors.Wrap(err, "add dummy episode")
|
||||||
}
|
}
|
||||||
|
log.Infof("added dummy episode for movie: %v", nameEn)
|
||||||
|
|
||||||
r, err := s.db.AddMediaWatchlist(&ent.Media{
|
r, err := s.db.AddMediaWatchlist(&ent.Media{
|
||||||
TmdbID: int(detail.ID),
|
TmdbID: int(detail.ID),
|
||||||
|
|||||||
Reference in New Issue
Block a user