2020-07-03 00:17:26 +02:00
|
|
|
// Code generated by Wire. DO NOT EDIT.
|
|
|
|
|
2021-02-01 22:16:30 +01:00
|
|
|
//go:generate go run github.com/google/wire/cmd/wire
|
2021-10-19 04:17:29 +02:00
|
|
|
//go:build !wireinject
|
|
|
|
// +build !wireinject
|
2020-07-03 00:17:26 +02:00
|
|
|
|
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/google/wire"
|
2020-07-10 18:45:58 +02:00
|
|
|
"github.com/navidrome/navidrome/core"
|
2021-06-22 17:15:51 +02:00
|
|
|
"github.com/navidrome/navidrome/core/agents"
|
2021-06-19 00:27:15 +02:00
|
|
|
"github.com/navidrome/navidrome/core/agents/lastfm"
|
2021-10-30 18:17:42 +02:00
|
|
|
"github.com/navidrome/navidrome/core/agents/listenbrainz"
|
2022-12-25 22:07:28 +01:00
|
|
|
"github.com/navidrome/navidrome/core/artwork"
|
2022-12-20 18:25:47 +01:00
|
|
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
2021-06-20 02:56:56 +02:00
|
|
|
"github.com/navidrome/navidrome/core/scrobbler"
|
2021-08-01 02:15:20 +02:00
|
|
|
"github.com/navidrome/navidrome/db"
|
2020-07-03 00:17:26 +02:00
|
|
|
"github.com/navidrome/navidrome/persistence"
|
|
|
|
"github.com/navidrome/navidrome/scanner"
|
|
|
|
"github.com/navidrome/navidrome/server"
|
2020-11-08 06:06:48 +01:00
|
|
|
"github.com/navidrome/navidrome/server/events"
|
2021-06-14 01:15:41 +02:00
|
|
|
"github.com/navidrome/navidrome/server/nativeapi"
|
2022-12-31 04:34:00 +01:00
|
|
|
"github.com/navidrome/navidrome/server/public"
|
2023-01-20 04:52:55 +01:00
|
|
|
"github.com/navidrome/navidrome/server/shares"
|
2020-07-03 00:17:26 +02:00
|
|
|
"github.com/navidrome/navidrome/server/subsonic"
|
2021-06-20 02:56:56 +02:00
|
|
|
"sync"
|
2020-07-03 00:17:26 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
// Injectors from wire_injectors.go:
|
|
|
|
|
|
|
|
func CreateServer(musicFolder string) *server.Server {
|
2021-08-01 02:15:20 +02:00
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
2020-10-25 03:43:59 +01:00
|
|
|
serverServer := server.New(dataStore)
|
2020-07-03 00:17:26 +02:00
|
|
|
return serverServer
|
|
|
|
}
|
|
|
|
|
2021-06-14 01:15:41 +02:00
|
|
|
func CreateNativeAPIRouter() *nativeapi.Router {
|
2021-08-01 02:15:20 +02:00
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
2021-06-22 00:41:11 +02:00
|
|
|
broker := events.GetBroker()
|
2021-06-08 21:44:30 +02:00
|
|
|
share := core.NewShare(dataStore)
|
2021-06-14 01:15:41 +02:00
|
|
|
router := nativeapi.New(dataStore, broker, share)
|
2020-07-03 00:17:26 +02:00
|
|
|
return router
|
|
|
|
}
|
|
|
|
|
2020-10-25 03:43:59 +01:00
|
|
|
func CreateSubsonicAPIRouter() *subsonic.Router {
|
2021-08-01 02:15:20 +02:00
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
2022-12-25 22:07:28 +01:00
|
|
|
fileCache := artwork.GetImageCache()
|
2022-12-23 18:28:22 +01:00
|
|
|
fFmpeg := ffmpeg.New()
|
2023-01-13 20:30:26 +01:00
|
|
|
agentsAgents := agents.New(dataStore)
|
|
|
|
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
|
|
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
2020-10-27 22:02:20 +01:00
|
|
|
transcodingCache := core.GetTranscodingCache()
|
2022-12-23 18:28:22 +01:00
|
|
|
mediaStreamer := core.NewMediaStreamer(dataStore, fFmpeg, transcodingCache)
|
2022-12-18 18:12:37 +01:00
|
|
|
archiver := core.NewArchiver(mediaStreamer, dataStore)
|
2020-10-27 16:01:40 +01:00
|
|
|
players := core.NewPlayers(dataStore)
|
2020-10-27 23:19:56 +01:00
|
|
|
scanner := GetScanner()
|
2021-06-22 00:41:11 +02:00
|
|
|
broker := events.GetBroker()
|
2021-10-26 16:35:58 +02:00
|
|
|
playlists := core.NewPlaylists(dataStore)
|
2021-06-23 05:56:29 +02:00
|
|
|
playTracker := scrobbler.GetPlayTracker(dataStore, broker)
|
2022-12-25 22:07:28 +01:00
|
|
|
router := subsonic.New(dataStore, artworkArtwork, mediaStreamer, archiver, players, externalMetadata, scanner, broker, playlists, playTracker)
|
2020-10-25 03:43:59 +01:00
|
|
|
return router
|
2020-07-03 00:17:26 +02:00
|
|
|
}
|
|
|
|
|
2022-12-31 04:34:00 +01:00
|
|
|
func CreatePublicRouter() *public.Router {
|
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
|
|
|
fileCache := artwork.GetImageCache()
|
|
|
|
fFmpeg := ffmpeg.New()
|
2023-01-13 20:30:26 +01:00
|
|
|
agentsAgents := agents.New(dataStore)
|
|
|
|
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
|
|
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
2023-01-20 04:52:55 +01:00
|
|
|
transcodingCache := core.GetTranscodingCache()
|
|
|
|
mediaStreamer := core.NewMediaStreamer(dataStore, fFmpeg, transcodingCache)
|
|
|
|
router := public.New(artworkArtwork, mediaStreamer)
|
|
|
|
return router
|
|
|
|
}
|
|
|
|
|
|
|
|
func CreateSharesRouter() *shares.Router {
|
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
|
|
|
share := core.NewShare(dataStore)
|
|
|
|
router := shares.New(dataStore, share)
|
2022-12-31 04:34:00 +01:00
|
|
|
return router
|
|
|
|
}
|
|
|
|
|
2021-06-19 00:27:15 +02:00
|
|
|
func CreateLastFMRouter() *lastfm.Router {
|
2021-08-01 02:15:20 +02:00
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
2021-06-19 00:27:15 +02:00
|
|
|
router := lastfm.NewRouter(dataStore)
|
|
|
|
return router
|
|
|
|
}
|
|
|
|
|
2021-10-30 18:17:42 +02:00
|
|
|
func CreateListenBrainzRouter() *listenbrainz.Router {
|
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
|
|
|
router := listenbrainz.NewRouter(dataStore)
|
|
|
|
return router
|
|
|
|
}
|
|
|
|
|
2020-10-27 23:19:56 +01:00
|
|
|
func createScanner() scanner.Scanner {
|
2021-08-01 02:15:20 +02:00
|
|
|
sqlDB := db.Db()
|
|
|
|
dataStore := persistence.New(sqlDB)
|
2021-10-19 04:17:29 +02:00
|
|
|
playlists := core.NewPlaylists(dataStore)
|
2022-12-25 22:07:28 +01:00
|
|
|
fileCache := artwork.GetImageCache()
|
2022-12-23 18:28:22 +01:00
|
|
|
fFmpeg := ffmpeg.New()
|
2023-01-13 20:30:26 +01:00
|
|
|
agentsAgents := agents.New(dataStore)
|
|
|
|
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
|
|
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
2022-12-29 05:01:52 +01:00
|
|
|
cacheWarmer := artwork.NewCacheWarmer(artworkArtwork, fileCache)
|
2021-06-22 00:41:11 +02:00
|
|
|
broker := events.GetBroker()
|
2022-12-23 18:28:22 +01:00
|
|
|
scannerScanner := scanner.New(dataStore, playlists, cacheWarmer, broker)
|
2020-10-27 23:19:56 +01:00
|
|
|
return scannerScanner
|
|
|
|
}
|
|
|
|
|
2020-07-03 00:17:26 +02:00
|
|
|
// wire_injectors.go:
|
|
|
|
|
2023-01-20 04:52:55 +01:00
|
|
|
var allProviders = wire.NewSet(core.Set, artwork.Set, subsonic.New, nativeapi.New, public.New, shares.New, persistence.New, lastfm.NewRouter, listenbrainz.NewRouter, events.GetBroker, db.Db)
|
2020-10-27 23:19:56 +01:00
|
|
|
|
2020-10-31 05:35:20 +01:00
|
|
|
// Scanner must be a Singleton
|
2020-10-27 23:19:56 +01:00
|
|
|
var (
|
|
|
|
onceScanner sync.Once
|
|
|
|
scannerInstance scanner.Scanner
|
|
|
|
)
|
|
|
|
|
|
|
|
func GetScanner() scanner.Scanner {
|
|
|
|
onceScanner.Do(func() {
|
|
|
|
scannerInstance = createScanner()
|
|
|
|
})
|
|
|
|
return scannerInstance
|
|
|
|
}
|