12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package base
- import (
- "github.com/allanpk716/ChineseSubFinder/internal/logic/file_downloader"
- subSupplier "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_supplier"
- "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_supplier/shooter"
- "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_supplier/subhd"
- "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_supplier/xunlei"
- "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_supplier/zimuku"
- "github.com/allanpk716/ChineseSubFinder/internal/types/backend"
- "github.com/gin-gonic/gin"
- "github.com/huandu/go-clone"
- "net/http"
- )
- func (cb *ControllerBase) CheckProxyHandler(c *gin.Context) {
- var err error
- defer func() {
- // 统一的异常处理
- cb.ErrorProcess(c, "CheckProxyHandler", err)
- }()
- checkProxy := backend.ReqCheckProxy{}
- err = c.ShouldBindJSON(&checkProxy)
- if err != nil {
- return
- }
- tmpFileDownloader := clone.Clone(cb.fileDownloader).(*file_downloader.FileDownloader)
- tmpFileDownloader.Settings.AdvancedSettings.ProxySettings = &checkProxy.ProxySettings
- tmpFileDownloader.Settings.AdvancedSettings.ProxySettings.UseProxy = true
- // 使用提交过来的这个代理地址,测试多个字幕网站的可用性
- subSupplierHub := subSupplier.NewSubSupplierHub(
- // 这里无需传递下载字幕的缓存实例
- zimuku.NewSupplier(tmpFileDownloader),
- xunlei.NewSupplier(tmpFileDownloader),
- shooter.NewSupplier(tmpFileDownloader),
- subhd.NewSupplier(tmpFileDownloader),
- )
- outStatus := subSupplierHub.CheckSubSiteStatus()
- c.JSON(http.StatusOK, outStatus)
- }
|