Просмотр исходного кода

更新 TMDB 第三方库,支持切换备用的 API 地址

Signed-off-by: allan716 <[email protected]>
allan716 2 лет назад
Родитель
Сommit
c32b9fe050

+ 2 - 2
go.mod

@@ -62,11 +62,12 @@ require (
 )
 
 require (
+	github.com/WQGroup/logger v0.0.6
 	github.com/allanpk716/is_running_in_docker v0.0.1
 	github.com/allanpk716/rod_helper v0.0.78
 	github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
 	github.com/arl/statsviz v0.5.1
-	github.com/cyruzin/golang-tmdb v1.4.5
+	github.com/cyruzin/golang-tmdb v1.5.0
 	github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819
 	github.com/longbridgeapp/opencc v0.1.7
 	github.com/pkg/errors v0.9.1
@@ -79,7 +80,6 @@ require (
 	github.com/EDDYCJY/fake-useragent v0.2.0 // indirect
 	github.com/Microsoft/go-winio v0.4.16 // indirect
 	github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 // indirect
-	github.com/WQGroup/logger v0.0.6 // indirect
 	github.com/acomagu/bufpipe v1.0.3 // indirect
 	github.com/andybalholm/brotli v1.0.4 // indirect
 	github.com/andybalholm/cascadia v1.3.1 // indirect

+ 2 - 0
go.sum

@@ -324,6 +324,8 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/cyruzin/golang-tmdb v1.4.5 h1:NiOrT8WFHAF97Ti0Ahn0ubgDvDE5G0uSADbyW0iR0qU=
 github.com/cyruzin/golang-tmdb v1.4.5/go.mod h1:ZSryJLCcY+9TiKU+LbouXKns++YBrM8Tizannr05c+I=
+github.com/cyruzin/golang-tmdb v1.5.0 h1:a8KT9gfTDCwVjfOg+oSGSjtZbZe/VgOEz5ri4s7RLOU=
+github.com/cyruzin/golang-tmdb v1.5.0/go.mod h1:ZSryJLCcY+9TiKU+LbouXKns++YBrM8Tizannr05c+I=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

+ 1 - 1
internal/backend/base_router.go

@@ -30,7 +30,7 @@ func InitRouter(
 	if settings.Get().AdvancedSettings.TmdbApiSettings.Enable == true &&
 		settings.Get().AdvancedSettings.TmdbApiSettings.ApiKey != "" {
 
-		tmdbApi, err = tmdb_api.NewTmdbHelper(cronHelper.Logger, settings.Get().AdvancedSettings.TmdbApiSettings.ApiKey)
+		tmdbApi, err = tmdb_api.NewTmdbHelper(cronHelper.Logger, settings.Get().AdvancedSettings.TmdbApiSettings.ApiKey, settings.Get().AdvancedSettings.TmdbApiSettings.UseAlternateBaseURL)
 		if err != nil {
 			cronHelper.Logger.Panicln("NewTmdbHelper", err)
 		}

+ 2 - 1
internal/backend/controllers/base/tmdb_api.go

@@ -49,7 +49,8 @@ func (cb *ControllerBase) CheckTmdbApiHandler(c *gin.Context) {
 	// 开始测试 tmdb api
 	tmdbApi, err := tmdb_api.NewTmdbHelper(
 		cb.fileDownloader.Log,
-		req.ApiKey)
+		req.ApiKey,
+		req.UseAlternateBaseURL)
 	if err != nil {
 		cb.fileDownloader.Log.Errorln("NewTmdbHelper", err)
 		return

+ 1 - 1
pkg/settings/advanced_settings.go

@@ -25,7 +25,7 @@ type AdvancedSettings struct {
 func NewAdvancedSettings() *AdvancedSettings {
 	return &AdvancedSettings{
 		ProxySettings:     NewProxySettings(false, "http", local_http_proxy_server.LocalHttpProxyPort, "127.0.0.1", "10809", "", ""),
-		TmdbApiSettings:   *NewTmdbApiSettings(false, ""),
+		TmdbApiSettings:   *NewTmdbApiSettings(false, "", false),
 		CustomVideoExts:   make([]string, 0),
 		Topic:             common.DownloadSubsPerSite,
 		SuppliersSettings: NewSuppliersSettings(),

+ 5 - 4
pkg/settings/tmdb_api_settings.go

@@ -1,10 +1,11 @@
 package settings
 
 type TmdbApiSettings struct {
-	Enable bool   `json:"enable"`
-	ApiKey string `json:"api_key"`
+	Enable              bool   `json:"enable"`
+	ApiKey              string `json:"api_key"`
+	UseAlternateBaseURL bool   `json:"use_alternate_base_url"`
 }
 
-func NewTmdbApiSettings(enable bool, apiKey string) *TmdbApiSettings {
-	return &TmdbApiSettings{Enable: enable, ApiKey: apiKey}
+func NewTmdbApiSettings(enable bool, apiKey string, useAlternateBaseURL bool) *TmdbApiSettings {
+	return &TmdbApiSettings{Enable: enable, ApiKey: apiKey, UseAlternateBaseURL: useAlternateBaseURL}
 }

+ 7 - 4
pkg/tmdb_api/tmdb.go

@@ -18,14 +18,16 @@ type TmdbApi struct {
 	tmdbClient *tmdb.Client
 }
 
-func NewTmdbHelper(l *logrus.Logger, apiKey string) (*TmdbApi, error) {
+func NewTmdbHelper(l *logrus.Logger, apiKey string, useAlternateBaseURL bool) (*TmdbApi, error) {
 
 	tmdbClient, err := tmdb.Init(apiKey)
 	if err != nil {
 		err = fmt.Errorf("error initializing tmdb client: %s", err)
 		return nil, err
 	}
-
+	if useAlternateBaseURL == true {
+		tmdbClient.SetAlternateBaseURL()
+	}
 	t := TmdbApi{
 		l:          l,
 		apiKey:     apiKey,
@@ -220,6 +222,7 @@ type ConvertIdResult struct {
 }
 
 type Req struct {
-	ProxySettings settings.ProxySettings `json:"proxy_settings"  binding:"required"`
-	ApiKey        string                 `json:"api_key"`
+	ProxySettings       settings.ProxySettings `json:"proxy_settings"  binding:"required"`
+	ApiKey              string                 `json:"api_key"`
+	UseAlternateBaseURL bool                   `json:"use_alternate_base_url"`
 }