diff --git a/edition/main.go b/edition/main.go index 4446ef9..57ed046 100644 --- a/edition/main.go +++ b/edition/main.go @@ -8,7 +8,7 @@ import ( func main() { tstor.Run([]tstor.Plugin{ - archive.Plugin, + archive.ArchivePlugin{}, qbittorrent.QBittorrentPlugin{}, }) } diff --git a/plugins/archive/daemon.go b/plugins/archive/daemon.go index 9056227..2609dd2 100644 --- a/plugins/archive/daemon.go +++ b/plugins/archive/daemon.go @@ -17,14 +17,19 @@ const daemonName = "archive" type ArchivePlugin struct{} +var _ tstor.Plugin = (*ArchivePlugin)(nil) + // Name implements tstor.Plugin. -func (a *ArchivePlugin) Name() string { +func (ArchivePlugin) Name() string { return daemonName } -var _ tstor.Plugin = (*ArchivePlugin)(nil) +var _ tstor.DaemonPlugin = (*ArchivePlugin)(nil) -var _ daemon.DaemonConstructor = NewDaemon +// NewDaemon implements tstor.DaemonPlugin. +func (a *ArchivePlugin) NewDaemon(context.Context, *koanf.Koanf) (daemon.Daemon, error) { + return &Daemon{}, nil +} func NewDaemon(ctx context.Context, koanf *koanf.Koanf) (daemon.Daemon, error) { return &Daemon{}, nil diff --git a/plugins/qbittorrent/daemon.go b/plugins/qbittorrent/daemon.go index 9c1ead1..c82f226 100644 --- a/plugins/qbittorrent/daemon.go +++ b/plugins/qbittorrent/daemon.go @@ -17,6 +17,7 @@ import ( "git.kmsign.ru/royalcat/tstor/server/src/daemon" "git.kmsign.ru/royalcat/tstor/server/src/logwrap" "git.kmsign.ru/royalcat/tstor/server/src/vfs" + "git.kmsign.ru/royalcat/tstor/server/tstor" "github.com/anacrolix/torrent/metainfo" "github.com/anacrolix/torrent/types/infohash" infohash_v2 "github.com/anacrolix/torrent/types/infohash-v2" @@ -26,6 +27,21 @@ import ( "go.opentelemetry.io/otel" ) +type QBittorrentPlugin struct { +} + +var _ tstor.Plugin = (*QBittorrentPlugin)(nil) + +func (QBittorrentPlugin) Name() string { + return daemonName +} + +var _ tstor.DaemonPlugin = (*QBittorrentPlugin)(nil) + +func (QBittorrentPlugin) NewDaemon(ctx context.Context, koanf *koanf.Koanf) (daemon.Daemon, error) { + return newDaemon(ctx, koanf) +} + var trace = otel.Tracer("git.kmsign.ru/royalcat/tstor/plugins/qbittorrent") type Daemon struct { @@ -53,14 +69,7 @@ WebUI\Password_PBKDF2="@ByteArray(qef5I4wZBkDG+PP6/5mQwA==:LoTmorQM/QM5RHI4+dOiu const daemonName = "qbittorrent" -type QBittorrentPlugin struct { -} - -func (QBittorrentPlugin) Name() string { - return daemonName -} - -func (QBittorrentPlugin) NewDaemon(ctx context.Context, koanf *koanf.Koanf) (daemon.Daemon, error) { +func newDaemon(ctx context.Context, koanf *koanf.Koanf) (daemon.Daemon, error) { log := rlog.Component(daemonName) log.Debug(ctx, "QBittorrent plugin loaded. Starting qbittorrent-nox") diff --git a/server/tstor/plugin.go b/server/tstor/plugin.go index 4f01b32..b7fe6c6 100644 --- a/server/tstor/plugin.go +++ b/server/tstor/plugin.go @@ -4,7 +4,6 @@ import ( "context" "git.kmsign.ru/royalcat/tstor/server/src/daemon" - "github.com/99designs/gqlgen/graphql" "github.com/knadh/koanf/v2" ) @@ -14,5 +13,4 @@ type Plugin interface { type DaemonPlugin interface { NewDaemon(context.Context, *koanf.Koanf) (daemon.Daemon, error) - GraphQLExecutableSchema() graphql.ExecutableSchema }