Files
2026-01-11 11:18:22 +00:00

59 lines
1.9 KiB
Go

package classifier
import (
"github.com/bitmagnet-io/bitmagnet/internal/classifier"
"github.com/bitmagnet-io/bitmagnet/internal/plugin/builder"
"github.com/bitmagnet-io/bitmagnet/internal/plugin/core/config"
"github.com/bitmagnet-io/bitmagnet/internal/plugin/core/search"
"github.com/bitmagnet-io/bitmagnet/internal/plugin/core/tmdb"
"github.com/bitmagnet-io/bitmagnet/internal/ref"
"github.com/bitmagnet-io/bitmagnet/pkg/plugin"
"go.uber.org/fx"
)
type deps = classifier.Params
var (
Ref = ref.Root.MustSub("classifier")
Plugin = builder.NewPlugin(
Ref,
builder.WithDescription[deps]("Provides the torrent classifier service"),
builder.WithActivation[deps](plugin.ActivationAlways),
builder.WithDependencies[deps](
config.Ref,
search.Ref,
tmdb.Ref,
),
// builder.WithDefaultConfig[deps](classifier.NewDefaultConfig()),
builder.WithConfig[deps](Ref.MustSub("workflow"), classifier.ParamWorkflow),
builder.WithConfig[deps](Ref.MustSub("keywords"), classifier.ParamKeywords),
builder.WithConfig[deps](Ref.MustSub("extensions"), classifier.ParamExtensions),
builder.WithConfig[deps](Ref.MustSub("flags"), classifier.ParamFlags),
builder.WithConfig[deps](Ref.MustSub("delete_xxx"), classifier.ParamDeleteXXX),
builder.WithConfig[deps](Ref.MustSub("concurrency"), classifier.ParamConcurrency),
builder.WithFxOption[deps](
fx.Provide(
func(
workflow classifier.Workflow,
keywords classifier.Keywords,
extensions classifier.Extensions,
flags classifier.FlagValues,
deleteXXX classifier.DeleteXXX,
concurrency classifier.Concurrency,
) classifier.Config {
return classifier.Config{
Workflow: workflow,
Keywords: keywords,
Extensions: extensions,
Flags: flags,
DeleteXXX: deleteXXX,
Concurrency: concurrency,
}
},
classifier.New,
),
),
)
)