Versions in this module Expand all Collapse all v0 v0.3.0 Apr 17, 2026 v0.2.0 Apr 16, 2026 v0.1.0 Apr 14, 2026 Changes in this version + func ApplyFilters(value string, filters []FilterDef) string + func EvalTemplate(tmplStr string, ctx *TemplateContext) (string, error) + func EvalTemplateOr(tmplStr string, ctx *TemplateContext, fallback string) string + func ExtractFieldHTML(row *goquery.Selection, field FieldBlock, ctx *TemplateContext) string + func ExtractFieldJSON(jsonStr string, field FieldBlock, ctx *TemplateContext) string + func FindRowsHTML(doc *goquery.Document, rows RowsBlock) *goquery.Selection + func FindRowsJSON(body string, rows RowsBlock) []string + func IsCloudflareError(err error) bool + type CapsBlock struct + AllowRawSearch bool + CategoryMappings []CategoryMapping + Modes map[string][]string + type CategoryMapping struct + Cat string + Desc string + ID string + type CloudflareError struct + StatusCode int + func (e *CloudflareError) Error() string + type Definition struct + Caps CapsBlock + Description string + Download DownloadBlock + Encoding string + ID string + Language string + LegacyLinks []string + Links []string + Login *LoginBlock + Name string + RequestDelay int + Search SearchBlock + Settings []SettingField + Type string + func ParseDefinition(raw []byte) (*Definition, error) + type DownloadBlock struct + Method string + Selectors []SelectorBlock + type Engine struct + func NewEngine(logger *slog.Logger, flaresolverr *FlareSolverr) *Engine + func (e *Engine) Cache() *ResultCache + func (e *Engine) DefinitionCount() int + func (e *Engine) GetRunner(catalogID string, settingsJSON string) (*Runner, error) + func (e *Engine) HasDefinition(catalogID string) bool + func (e *Engine) LoadDefinitions(defs map[string][]byte) + func (e *Engine) ResolveCatalogID(name, url string) string + type FieldBlock struct + Optional bool + type FilterDef struct + Args interface{} + Name string + type FlareSolverr struct + func NewFlareSolverr(apiURL string, logger *slog.Logger) *FlareSolverr + func (f *FlareSolverr) GetSession(domain string) (*cfSession, bool) + func (f *FlareSolverr) PreWarm(ctx context.Context, urls []string) + func (f *FlareSolverr) Solve(ctx context.Context, targetURL string) (html string, cookies []fsCookie, userAgent string, err error) + type LoginBlock struct + Error []SelectorBlock + Inputs map[string]string + Method string + Path string + Test *TestBlock + type QueryContext struct + Ep string + IMDBID string + Page int + Q string + Season string + TMDBID string + TVDBID string + Type string + Year string + type RateLimitedClient struct + func NewRateLimitedClient(delay time.Duration) *RateLimitedClient + func (c *RateLimitedClient) ApplyCFSession(rawURL string, cookies []*http.Cookie, userAgent string) + func (c *RateLimitedClient) Do(req *http.Request) (*http.Response, error) + type ResponseConfig struct + NoResultsMessage string + Type string + type ResultCache struct + func NewResultCache(ttl time.Duration) *ResultCache + func (c *ResultCache) Cleanup() + func (c *ResultCache) Get(key string) ([]SearchResult, bool) + func (c *ResultCache) Set(key string, results []SearchResult) + type RowsBlock struct + After int + Count *SelectorBlock + Multiple bool + Remove string + Selector string + type Runner struct + func NewRunner(def *Definition, settings map[string]string, flaresolverr *FlareSolverr, ...) *Runner + func (r *Runner) Definition() *Definition + func (r *Runner) ResolveDownload(ctx context.Context, detailURL string) (string, error) + func (r *Runner) Search(ctx context.Context, query string, categories []int) ([]SearchResult, error) + type SearchBlock struct + Fields map[string]FieldBlock + Inputs map[string]string + KeywordsFilters []FilterDef + Paths []SearchPath + Rows RowsBlock + type SearchPath struct + Inputs map[string]string + Method string + Path string + Response *ResponseConfig + type SearchResult struct + Category string + Date string + Description string + Details string + Download string + DownloadVolumeFactor float64 + Grabs int + IMDBID string + InfoHash string + Leechers int + MagnetURI string + Poster string + Seeders int + Size int64 + Title string + UploadVolumeFactor float64 + type SelectorBlock struct + Attribute string + Case map[string]string + Filters []FilterDef + Remove string + Selector string + Text string + type SettingField struct + Default interface{} + Label string + Name string + Options interface{} + Type string + type TemplateContext struct + Categories []string + Config map[string]string + False bool + Keywords string + Query QueryContext + Result map[string]string + Today TodayContext + True bool + func NewTemplateContext(config map[string]string, query string) *TemplateContext + type TestBlock struct + Path string + Selector string + type TodayContext struct + Year int