2021-09-21 06:00:43 +05:30
|
|
|
//go:build wireinject
|
2020-01-08 09:39:58 -05:00
|
|
|
|
2020-07-02 16:34:21 -04:00
|
|
|
package cmd
|
2020-01-08 09:39:58 -05:00
|
|
|
|
|
|
|
|
import (
|
2020-11-08 00:06:48 -05:00
|
|
|
"sync"
|
|
|
|
|
|
2020-01-08 09:39:58 -05:00
|
|
|
"github.com/google/wire"
|
2020-07-10 12:45:58 -04:00
|
|
|
"github.com/navidrome/navidrome/core"
|
2021-06-18 18:27:15 -04:00
|
|
|
"github.com/navidrome/navidrome/core/agents/lastfm"
|
2021-10-30 12:17:42 -04:00
|
|
|
"github.com/navidrome/navidrome/core/agents/listenbrainz"
|
2022-12-28 12:32:46 -05:00
|
|
|
"github.com/navidrome/navidrome/core/artwork"
|
2021-07-31 20:15:20 -04:00
|
|
|
"github.com/navidrome/navidrome/db"
|
2020-01-23 19:44:08 -05:00
|
|
|
"github.com/navidrome/navidrome/persistence"
|
|
|
|
|
"github.com/navidrome/navidrome/scanner"
|
|
|
|
|
"github.com/navidrome/navidrome/server"
|
2021-07-31 20:15:20 -04:00
|
|
|
"github.com/navidrome/navidrome/server/events"
|
2021-06-13 19:15:41 -04:00
|
|
|
"github.com/navidrome/navidrome/server/nativeapi"
|
2022-12-30 22:34:00 -05:00
|
|
|
"github.com/navidrome/navidrome/server/public"
|
2020-01-23 19:44:08 -05:00
|
|
|
"github.com/navidrome/navidrome/server/subsonic"
|
2020-01-08 09:39:58 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var allProviders = wire.NewSet(
|
2020-07-10 12:45:58 -04:00
|
|
|
core.Set,
|
2022-12-28 12:32:46 -05:00
|
|
|
artwork.Set,
|
2020-01-19 18:28:23 -05:00
|
|
|
subsonic.New,
|
2021-06-13 19:15:41 -04:00
|
|
|
nativeapi.New,
|
2022-12-30 22:34:00 -05:00
|
|
|
public.New,
|
2020-01-19 18:28:23 -05:00
|
|
|
persistence.New,
|
2021-06-18 18:27:15 -04:00
|
|
|
lastfm.NewRouter,
|
2021-10-30 12:17:42 -04:00
|
|
|
listenbrainz.NewRouter,
|
2021-06-21 18:41:11 -04:00
|
|
|
events.GetBroker,
|
2021-07-31 20:15:20 -04:00
|
|
|
db.Db,
|
2020-01-08 09:39:58 -05:00
|
|
|
)
|
|
|
|
|
|
2020-01-19 19:34:54 -05:00
|
|
|
func CreateServer(musicFolder string) *server.Server {
|
2020-01-11 13:00:03 -05:00
|
|
|
panic(wire.Build(
|
2020-01-13 17:06:47 -05:00
|
|
|
server.New,
|
2020-01-11 13:00:03 -05:00
|
|
|
allProviders,
|
|
|
|
|
))
|
2020-01-11 12:37:05 -05:00
|
|
|
}
|
|
|
|
|
|
2021-06-13 19:15:41 -04:00
|
|
|
func CreateNativeAPIRouter() *nativeapi.Router {
|
2020-11-08 00:06:48 -05:00
|
|
|
panic(wire.Build(
|
|
|
|
|
allProviders,
|
|
|
|
|
))
|
2020-10-27 18:19:56 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func CreateSubsonicAPIRouter() *subsonic.Router {
|
2020-07-02 20:08:41 -04:00
|
|
|
panic(wire.Build(
|
|
|
|
|
allProviders,
|
2020-10-27 18:19:56 -04:00
|
|
|
GetScanner,
|
2020-07-02 20:08:41 -04:00
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-30 22:34:00 -05:00
|
|
|
func CreatePublicRouter() *public.Router {
|
|
|
|
|
panic(wire.Build(
|
|
|
|
|
allProviders,
|
|
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-18 18:27:15 -04:00
|
|
|
func CreateLastFMRouter() *lastfm.Router {
|
|
|
|
|
panic(wire.Build(
|
|
|
|
|
allProviders,
|
|
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-30 12:17:42 -04:00
|
|
|
func CreateListenBrainzRouter() *listenbrainz.Router {
|
|
|
|
|
panic(wire.Build(
|
|
|
|
|
allProviders,
|
|
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-27 18:19:56 -04:00
|
|
|
// Scanner must be a Singleton
|
|
|
|
|
var (
|
|
|
|
|
onceScanner sync.Once
|
|
|
|
|
scannerInstance scanner.Scanner
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func GetScanner() scanner.Scanner {
|
|
|
|
|
onceScanner.Do(func() {
|
|
|
|
|
scannerInstance = createScanner()
|
|
|
|
|
})
|
|
|
|
|
return scannerInstance
|
2020-01-19 19:34:54 -05:00
|
|
|
}
|
|
|
|
|
|
2020-10-27 18:19:56 -04:00
|
|
|
func createScanner() scanner.Scanner {
|
|
|
|
|
panic(wire.Build(
|
|
|
|
|
allProviders,
|
|
|
|
|
scanner.New,
|
|
|
|
|
))
|
2020-01-08 09:39:58 -05:00
|
|
|
}
|