Add album/track releases with audio analysis, AnalyzeAlbumRelease RPC, Docker path auto-resolution, release parsing decision tree
This commit is contained in:
@@ -26,6 +26,7 @@ import (
|
||||
grpcprom "github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus"
|
||||
|
||||
"homelab.lan/music-agregator/internal"
|
||||
"homelab.lan/music-agregator/internal/analysis"
|
||||
"homelab.lan/music-agregator/internal/config"
|
||||
"homelab.lan/music-agregator/internal/database"
|
||||
"homelab.lan/music-agregator/internal/hello"
|
||||
@@ -82,12 +83,16 @@ type riverSetup struct {
|
||||
cacheRefreshWorker *indexer.CacheRefreshWorker
|
||||
}
|
||||
|
||||
func setupRiver(ctx context.Context, cfg config.Config, db *database.DB, torrentClient torrent.TorrentClient) *riverSetup {
|
||||
func setupRiver(ctx context.Context, cfg config.Config, db *database.DB, torrentClient torrent.TorrentClient, pathMapper *torrent.PathMapper) *riverSetup {
|
||||
cacheWorker := &indexer.CacheRefreshWorker{}
|
||||
pollWorker := &workers.PollDownloadWorker{
|
||||
Downloads: database.NewDownloadRepository(db.Pool),
|
||||
DownloadFiles: database.NewDownloadFileRepository(db.Pool),
|
||||
AlbumReleases: database.NewAlbumReleaseRepository(db.Pool),
|
||||
TrackReleases: database.NewTrackReleaseRepository(db.Pool),
|
||||
TorrentClient: torrentClient,
|
||||
PathMapper: pathMapper,
|
||||
Analyzer: analysis.NewReleaseAnalyzer(db),
|
||||
}
|
||||
|
||||
riverWorkers := river.NewWorkers()
|
||||
@@ -161,9 +166,14 @@ func serveGrpc(config config.Config) {
|
||||
log.Fatal().Err(err).Msg("failed to create torrent client")
|
||||
}
|
||||
|
||||
rs := setupRiver(ctx, config, db, torrentClient)
|
||||
pathMapper, err := torrent.NewPathMapper(config.Torrent.ContainerName, torrentClient)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to create path mapper")
|
||||
}
|
||||
|
||||
musiscAgregatorSeerver, err := internal.NewMusicAgregatorServer(config, rs.client, torrentClient, db)
|
||||
rs := setupRiver(ctx, config, db, torrentClient, pathMapper)
|
||||
|
||||
musiscAgregatorSeerver, err := internal.NewMusicAgregatorServer(config, rs.client, torrentClient, pathMapper, db)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to create MusicAgregatorServer")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user