| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- package base
 
- import (
 
- 	"net/http"
 
- 	"github.com/ChineseSubFinder/ChineseSubFinder/pkg/local_http_proxy_server"
 
- 	"github.com/ChineseSubFinder/ChineseSubFinder/pkg/settings"
 
- 	"github.com/ChineseSubFinder/ChineseSubFinder/pkg/tmdb_api"
 
- 	"github.com/ChineseSubFinder/ChineseSubFinder/pkg/types/backend"
 
- 	"github.com/gin-gonic/gin"
 
- )
 
- func (cb *ControllerBase) CheckTmdbApiHandler(c *gin.Context) {
 
- 	var err error
 
- 	defer func() {
 
- 		// 统一的异常处理
 
- 		cb.ErrorProcess(c, "CheckTmdbApiHandler", err)
 
- 	}()
 
- 	req := tmdb_api.Req{}
 
- 	err = c.ShouldBindJSON(&req)
 
- 	if err != nil {
 
- 		return
 
- 	}
 
- 	if req.ApiKey == "" {
 
- 		c.JSON(http.StatusOK, backend.ReplyCommon{Message: "false"})
 
- 		return
 
- 	}
 
- 	// 备份一份
 
- 	bkProxySettings := settings.Get().AdvancedSettings.ProxySettings.CopyOne()
 
- 	// 赋值 Web 传递过来的需要测试的代理参数
 
- 	settings.Get().AdvancedSettings.ProxySettings = &req.ProxySettings
 
- 	defer func() {
 
- 		// 还原
 
- 		settings.Get().AdvancedSettings.ProxySettings = bkProxySettings
 
- 		err = local_http_proxy_server.SetProxyInfo(settings.Get().AdvancedSettings.ProxySettings.GetInfos())
 
- 		if err != nil {
 
- 			return
 
- 		}
 
- 		// 启动代理
 
- 		local_http_proxy_server.GetProxyUrl()
 
- 	}()
 
- 	// 设置代理
 
- 	err = local_http_proxy_server.SetProxyInfo(settings.Get().AdvancedSettings.ProxySettings.GetInfos())
 
- 	if err != nil {
 
- 		return
 
- 	}
 
- 	// 开始测试 tmdb api
 
- 	tmdbApi, err := tmdb_api.NewTmdbHelper(
 
- 		cb.fileDownloader.Log,
 
- 		req.ApiKey,
 
- 		req.UseAlternateBaseURL)
 
- 	if err != nil {
 
- 		cb.fileDownloader.Log.Errorln("NewTmdbHelper", err)
 
- 		return
 
- 	}
 
- 	aliveStatus := tmdbApi.Alive()
 
- 	// 返回结果
 
- 	if aliveStatus == false {
 
- 		cb.fileDownloader.Log.Errorln("tmdbApi.Alive() == false")
 
- 		c.JSON(http.StatusOK, backend.ReplyCommon{Message: "false"})
 
- 		return
 
- 	} else {
 
- 		cb.fileDownloader.Log.Infoln("tmdbApi.Alive() == true")
 
- 		c.JSON(http.StatusOK, backend.ReplyCommon{Message: "true"})
 
- 		return
 
- 	}
 
- }
 
 
  |