Web UI: podcasts, radio, shares, bookmarks pages; admin podcast/jukebox management; per-user Subsonic permission editor
This commit is contained in:
+10
-7
@@ -72,6 +72,12 @@ func Open(cfg config.Config, log *slog.Logger) (*App, error) {
|
||||
return nil, fmt.Errorf("deriving auth encryption key: %w", err)
|
||||
}
|
||||
|
||||
podcastMgr := podcasts.NewManager(db, cfg.DataDir, cfg.FFprobePath, log)
|
||||
if err := podcastMgr.RecoverInterruptedDownloads(); err != nil {
|
||||
log.Warn("podcast download recovery failed", "err", err)
|
||||
}
|
||||
jukeboxCtl := jukebox.New(cfg.MPVPath)
|
||||
|
||||
webApp := &web.Web{
|
||||
DB: db,
|
||||
Config: cfg,
|
||||
@@ -81,14 +87,11 @@ func Open(cfg config.Config, log *slog.Logger) (*App, error) {
|
||||
Scanner: sc,
|
||||
CoverArt: covers,
|
||||
EncryptionKey: encryptionKey,
|
||||
Podcasts: podcastMgr,
|
||||
Jukebox: jukeboxCtl,
|
||||
Log: log,
|
||||
}
|
||||
|
||||
podcastMgr := podcasts.NewManager(db, cfg.DataDir, cfg.FFprobePath, log)
|
||||
if err := podcastMgr.RecoverInterruptedDownloads(); err != nil {
|
||||
log.Warn("podcast download recovery failed", "err", err)
|
||||
}
|
||||
|
||||
subsonicSrv := &subsonic.Server{
|
||||
DB: db,
|
||||
Config: cfg,
|
||||
@@ -97,7 +100,7 @@ func Open(cfg config.Config, log *slog.Logger) (*App, error) {
|
||||
CoverArt: covers,
|
||||
Transcoder: transcoding.NewManager(cfg.FFmpegPath),
|
||||
Podcasts: podcastMgr,
|
||||
Jukebox: jukebox.New(cfg.MPVPath),
|
||||
Jukebox: jukeboxCtl,
|
||||
Log: log,
|
||||
}
|
||||
|
||||
@@ -105,7 +108,7 @@ func Open(cfg config.Config, log *slog.Logger) (*App, error) {
|
||||
}
|
||||
|
||||
func (a *App) Close() error {
|
||||
a.Subsonic.Jukebox.Close()
|
||||
a.Web.Jukebox.Close()
|
||||
return a.DB.Close()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user