Files
MeBox/internal/service/site.go
T
2026-06-26 18:44:58 +08:00

31 lines
918 B
Go

// Package service — site management (PT/BT tracker CRUD + connection test).
//
// SiteService owns the lifecycle of Site rows and exposes a cross-site
// search dispatcher that fans out a keyword query to every enabled site's
// adapter, collects results and returns them merged + sorted.
package service
import (
"go.uber.org/zap"
"github.com/ShukeBta/MediaStationGo/internal/repository"
)
// SiteService manages PT/BT site configurations.
type SiteService struct {
log *zap.Logger
repo *repository.Container
flareSolverrURL string
apiRateLimiter siteAPIRateLimiter
}
// NewSiteService is the constructor.
func NewSiteService(log *zap.Logger, repo *repository.Container, flareSolverrURL string) *SiteService {
return &SiteService{
log: log,
repo: repo,
flareSolverrURL: flareSolverrURL,
apiRateLimiter: newPersistentSiteAPIRateLimiter(repo),
}
}