|
@@ -1,7 +1,6 @@
|
|
|
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"
|
|
@@ -9,7 +8,6 @@ import (
|
|
|
"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"
|
|
|
)
|
|
|
|
|
@@ -26,21 +24,33 @@ func (cb *ControllerBase) CheckProxyHandler(c *gin.Context) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- tmpFileDownloader := clone.Clone(cb.fileDownloader).(*file_downloader.FileDownloader)
|
|
|
- tmpFileDownloader.Settings.AdvancedSettings.ProxySettings = &checkProxy.ProxySettings
|
|
|
- tmpFileDownloader.Settings.AdvancedSettings.ProxySettings.UseProxy = true
|
|
|
+ // 先尝试关闭之前的本地 http 代理
|
|
|
+ err = cb.fileDownloader.Settings.AdvancedSettings.ProxySettings.CloseLocalHttpProxyServer()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 备份一份
|
|
|
+ bkProxySettings := cb.fileDownloader.Settings.AdvancedSettings.ProxySettings.CopyOne()
|
|
|
+ // 赋值 Web 传递过来的需要测试的代理参数
|
|
|
+ cb.fileDownloader.Settings.AdvancedSettings.ProxySettings = &checkProxy.ProxySettings
|
|
|
+ cb.fileDownloader.Settings.AdvancedSettings.ProxySettings.UseProxy = true
|
|
|
|
|
|
// 使用提交过来的这个代理地址,测试多个字幕网站的可用性
|
|
|
subSupplierHub := subSupplier.NewSubSupplierHub(
|
|
|
// 这里无需传递下载字幕的缓存实例
|
|
|
- zimuku.NewSupplier(tmpFileDownloader),
|
|
|
- xunlei.NewSupplier(tmpFileDownloader),
|
|
|
- shooter.NewSupplier(tmpFileDownloader),
|
|
|
- subhd.NewSupplier(tmpFileDownloader),
|
|
|
+ zimuku.NewSupplier(cb.fileDownloader),
|
|
|
+ xunlei.NewSupplier(cb.fileDownloader),
|
|
|
+ shooter.NewSupplier(cb.fileDownloader),
|
|
|
+ subhd.NewSupplier(cb.fileDownloader),
|
|
|
)
|
|
|
|
|
|
outStatus := subSupplierHub.CheckSubSiteStatus()
|
|
|
|
|
|
+ defer func() {
|
|
|
+ // 还原
|
|
|
+ cb.fileDownloader.Settings.AdvancedSettings.ProxySettings = bkProxySettings
|
|
|
+ }()
|
|
|
+
|
|
|
c.JSON(http.StatusOK, outStatus)
|
|
|
|
|
|
}
|