Share single torrent client across all services, eliminate triple qBittorrent login on startup

This commit is contained in:
Alexander
2026-05-09 21:42:53 +02:00
parent 758a4b909a
commit ef75b9bfba
5 changed files with 19 additions and 46 deletions
+11 -8
View File
@@ -82,12 +82,12 @@ type riverSetup struct {
cacheRefreshWorker *indexer.CacheRefreshWorker
}
func setupRiver(ctx context.Context, cfg config.Config, db *database.DB) *riverSetup {
func setupRiver(ctx context.Context, cfg config.Config, db *database.DB, torrentClient torrent.TorrentClient) *riverSetup {
cacheWorker := &indexer.CacheRefreshWorker{}
pollWorker := &workers.PollDownloadWorker{
Downloads: database.NewDownloadRepository(db.Pool),
DownloadFiles: database.NewDownloadFileRepository(db.Pool),
TorrentClient: torrent.MustNewTorrentClient(cfg),
TorrentClient: torrentClient,
}
riverWorkers := river.NewWorkers()
@@ -155,9 +155,15 @@ func serveGrpc(config config.Config) {
ctx := context.Background()
db := setupDatabase(ctx, config)
defer db.Close()
rs := setupRiver(ctx, config, db)
musiscAgregatorSeerver, err := internal.NewMusicAgregatorServer(config, rs.client, db)
torrentClient, err := torrent.NewTorrentClient(config)
if err != nil {
log.Fatal().Err(err).Msg("failed to create torrent client")
}
rs := setupRiver(ctx, config, db, torrentClient)
musiscAgregatorSeerver, err := internal.NewMusicAgregatorServer(config, rs.client, torrentClient, db)
if err != nil {
log.Fatal().Err(err).Msg("failed to create MusicAgregatorServer")
}
@@ -165,10 +171,7 @@ func serveGrpc(config config.Config) {
if err != nil {
log.Fatal().Err(err).Msg("failed to create IndexerServer")
}
torrentServer, err := torrent.NewTorrentServer(config)
if err != nil {
log.Fatal().Err(err).Msg("failed to create TorrentServer")
}
torrentServer := torrent.NewTorrentServer(torrentClient)
metadataServer, err := metadata.NewMetadataServer(config)
if err != nil {
log.Fatal().Err(err).Msg("failed to create MetadataServer")