mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-06 05:16:38 +08:00
feat: 添加 FlareSolverr 配置支持以绕过 Cloudflare/WAF
- 在 config.example.yaml 中添加 flaresolverr 配置段 - 在 internal/config/config.go 中添加 FlareSolverrConfig 结构体 - 修改 SiteService 接收 flaresolverr URL - 更新 TestConnection 使用配置的 FlareSolverr URL - 构建验证通过
This commit is contained in:
@@ -118,7 +118,13 @@ func New(cfg *config.Config, log *zap.Logger, repos *repository.Container) *Cont
|
||||
apiConfigSvc := NewApiConfigService(cfg, log, repos, crypto)
|
||||
downloadMgr := NewDownloadManager(log, repos, crypto)
|
||||
notifySvc := NewNotifyService(log, repos, crypto)
|
||||
siteSvc := NewSiteService(log, repos)
|
||||
|
||||
// 构建 FlareSolverr URL(如果启用)
|
||||
flareSolverrURL := ""
|
||||
if cfg.FlareSolverr.Enabled && cfg.FlareSolverr.URL != "" {
|
||||
flareSolverrURL = cfg.FlareSolverr.URL
|
||||
}
|
||||
siteSvc := NewSiteService(log, repos, flareSolverrURL)
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
|
||||
@@ -21,13 +21,14 @@ import (
|
||||
|
||||
// SiteService manages PT/BT site configurations.
|
||||
type SiteService struct {
|
||||
log *zap.Logger
|
||||
repo *repository.Container
|
||||
log *zap.Logger
|
||||
repo *repository.Container
|
||||
flareSolverrURL string
|
||||
}
|
||||
|
||||
// NewSiteService is the constructor.
|
||||
func NewSiteService(log *zap.Logger, repo *repository.Container) *SiteService {
|
||||
return &SiteService{log: log, repo: repo}
|
||||
func NewSiteService(log *zap.Logger, repo *repository.Container, flareSolverrURL string) *SiteService {
|
||||
return &SiteService{log: log, repo: repo, flareSolverrURL: flareSolverrURL}
|
||||
}
|
||||
|
||||
// Create persists a new site.
|
||||
@@ -88,9 +89,8 @@ func (s *SiteService) TestConnection(ctx context.Context, id string) (bool, stri
|
||||
timeout = 15
|
||||
}
|
||||
|
||||
// TODO: Get flareSolverrURL from config (e.g. from config.yaml)
|
||||
// For now, pass empty string to skip FlareSolverr
|
||||
flareSolverrURL := "" // TODO: load from config
|
||||
// Use configured FlareSolverr URL (may be empty if not configured)
|
||||
flareSolverrURL := s.flareSolverrURL
|
||||
|
||||
ok, msg, err := helper.TestSiteConnectivity(site, flareSolverrURL, timeout, s.log)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user