mirror of
https://github.com/simon-ding/polaris.git
synced 2026-02-06 23:21:00 +08:00
feat: proxy only affects tmdb
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
package tmdb
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"polaris/log"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
tmdb "github.com/cyruzin/golang-tmdb"
|
||||
"github.com/pkg/errors"
|
||||
@@ -14,11 +17,29 @@ type Client struct {
|
||||
tmdbClient *tmdb.Client
|
||||
}
|
||||
|
||||
func NewClient(apiKey string) (*Client, error) {
|
||||
func NewClient(apiKey, proxyUrl string) (*Client, error) {
|
||||
|
||||
tmdbClient, err := tmdb.Init(apiKey)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "new tmdb client")
|
||||
}
|
||||
if proxyUrl != "" {
|
||||
//set proxy
|
||||
u, err := url.Parse(proxyUrl)
|
||||
if err != nil {
|
||||
log.Errorf("parse proxy %v error, skip: %v", proxyUrl, err)
|
||||
} else {
|
||||
tmdbClient.SetClientConfig(http.Client{
|
||||
Timeout: time.Second * 10,
|
||||
Transport: &http.Transport{
|
||||
Proxy: http.ProxyURL(u),
|
||||
MaxIdleConns: 10,
|
||||
IdleConnTimeout: 15 * time.Second,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return &Client{
|
||||
apiKey: apiKey,
|
||||
@@ -50,7 +71,6 @@ func (c *Client) GetTvDetails(id int, language string) (*tmdb.TVDetails, error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return d, err
|
||||
}
|
||||
|
||||
@@ -152,7 +172,7 @@ func (c *Client) GetEposideDetail(id, seasonNumber, eposideNumber int, language
|
||||
return d, err
|
||||
}
|
||||
d.Name = detailEN.Name
|
||||
d.Overview = detailEN.Overview
|
||||
d.Overview = detailEN.Overview
|
||||
}
|
||||
|
||||
return d, err
|
||||
@@ -172,7 +192,7 @@ func (c *Client) GetSeasonDetails(id, seasonNumber int, language string) (*tmdb.
|
||||
}
|
||||
|
||||
for i, ep := range detailCN.Episodes {
|
||||
if !episodeNameUseful(ep.Name) && episodeNameUseful(detailEN.Episodes[i].Name){
|
||||
if !episodeNameUseful(ep.Name) && episodeNameUseful(detailEN.Episodes[i].Name) {
|
||||
detailCN.Episodes[i].Name = detailEN.Episodes[i].Name
|
||||
detailCN.Episodes[i].Overview = detailEN.Episodes[i].Overview
|
||||
}
|
||||
@@ -198,7 +218,6 @@ func withLangOption(language string) map[string]string {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func episodeNameUseful(name string) bool {
|
||||
return !strings.HasSuffix(name, "集") && !strings.HasPrefix(strings.ToLower(name), "episode")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,8 @@ func (c *Client) TMDB() (*tmdb.Client, error) {
|
||||
if api == "" {
|
||||
return nil, errors.New("TMDB apiKey not set")
|
||||
}
|
||||
return tmdb.NewClient(api)
|
||||
proxy := c.db.GetSetting(db.SettingProxy)
|
||||
return tmdb.NewClient(api, proxy)
|
||||
}
|
||||
|
||||
func (c *Client) MustTMDB() *tmdb.Client {
|
||||
|
||||
@@ -39,8 +39,6 @@ type Server struct {
|
||||
|
||||
func (s *Server) Serve() error {
|
||||
s.core.Init()
|
||||
|
||||
s.restoreProxy()
|
||||
|
||||
s.jwtSerect = s.db.GetSetting(db.JwtSerectKey)
|
||||
//st, _ := fs.Sub(ui.Web, "build/web")
|
||||
@@ -129,7 +127,8 @@ func (s *Server) TMDB() (*tmdb.Client, error) {
|
||||
if api == "" {
|
||||
return nil, errors.New("TMDB apiKey not set")
|
||||
}
|
||||
return tmdb.NewClient(api)
|
||||
proxy := s.db.GetSetting(db.SettingProxy)
|
||||
return tmdb.NewClient(api, proxy)
|
||||
}
|
||||
|
||||
func (s *Server) MustTMDB() *tmdb.Client {
|
||||
|
||||
@@ -3,8 +3,6 @@ package server
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"polaris/db"
|
||||
"polaris/ent"
|
||||
"polaris/log"
|
||||
@@ -55,29 +53,10 @@ func (s *Server) SetSetting(c *gin.Context) (interface{}, error) {
|
||||
s.db.SetSetting(db.SettingPlexMatchEnabled, "false")
|
||||
}
|
||||
|
||||
s.setProxy(in.Proxy)
|
||||
s.db.SetSetting(db.SettingProxy, in.Proxy)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *Server) setProxy(proxy string) {
|
||||
proxyUrl, err := url.Parse(proxy)
|
||||
tp := http.DefaultTransport.(*http.Transport)
|
||||
if proxy == "" || err != nil {
|
||||
log.Warnf("proxy url not valid, disabling: %v", proxy)
|
||||
tp.Proxy = nil
|
||||
s.db.SetSetting(db.SettingProxy, "")
|
||||
} else {
|
||||
log.Infof("set proxy to %v", proxy)
|
||||
tp.Proxy = http.ProxyURL(proxyUrl)
|
||||
s.db.SetSetting(db.SettingProxy, proxy)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) restoreProxy() {
|
||||
p := s.db.GetSetting(db.SettingProxy)
|
||||
s.setProxy(p)
|
||||
}
|
||||
|
||||
func (s *Server) GetSetting(c *gin.Context) (interface{}, error) {
|
||||
tmdb := s.db.GetSetting(db.SettingTmdbApiKey)
|
||||
downloadDir := s.db.GetSetting(db.SettingDownloadDir)
|
||||
|
||||
Reference in New Issue
Block a user