From b3a623ffe11cbf96dab68f994cb6f1cbed8ab1db Mon Sep 17 00:00:00 2001 From: sentriz Date: Thu, 26 Mar 2020 01:26:05 +0000 Subject: [PATCH] move cache path from base controller to subsonic controller --- server/ctrlbase/ctrl.go | 1 - server/ctrlsubsonic/ctrl.go | 4 +++- server/ctrlsubsonic/ctrl_test.go | 5 ++++- server/ctrlsubsonic/handlers_raw.go | 2 +- server/server.go | 9 ++++++--- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/server/ctrlbase/ctrl.go b/server/ctrlbase/ctrl.go index c61e49e..cfcbb49 100644 --- a/server/ctrlbase/ctrl.go +++ b/server/ctrlbase/ctrl.go @@ -47,7 +47,6 @@ func statusToBlock(code int) string { type Controller struct { DB *db.DB MusicPath string - CachePath string Scanner *scanner.Scanner ProxyPrefix string } diff --git a/server/ctrlsubsonic/ctrl.go b/server/ctrlsubsonic/ctrl.go index 0b37246..d9ae912 100644 --- a/server/ctrlsubsonic/ctrl.go +++ b/server/ctrlsubsonic/ctrl.go @@ -24,11 +24,13 @@ const ( type Controller struct { *ctrlbase.Controller + cachePath string } -func New(base *ctrlbase.Controller) *Controller { +func New(base *ctrlbase.Controller, cachePath string) *Controller { return &Controller{ Controller: base, + cachePath: cachePath, } } diff --git a/server/ctrlsubsonic/ctrl_test.go b/server/ctrlsubsonic/ctrl_test.go index 548cd5a..df1a2ec 100644 --- a/server/ctrlsubsonic/ctrl_test.go +++ b/server/ctrlsubsonic/ctrl_test.go @@ -30,7 +30,10 @@ func init() { if err != nil { log.Fatalf("error opening database: %v\n", err) } - testController = New(&ctrlbase.Controller{DB: db}) + testController = New( + &ctrlbase.Controller{DB: db}, + "", + ) } type queryCase struct { diff --git a/server/ctrlsubsonic/handlers_raw.go b/server/ctrlsubsonic/handlers_raw.go index 2396949..5053143 100644 --- a/server/ctrlsubsonic/handlers_raw.go +++ b/server/ctrlsubsonic/handlers_raw.go @@ -136,7 +136,7 @@ func (c *Controller) ServeStream(w http.ResponseWriter, r *http.Request) *spec.R } servOpts.pref = pref servOpts.maxBitrate = params.GetIntOr("maxBitRate", 0) - servOpts.cachePath = c.CachePath + servOpts.cachePath = c.cachePath serveTrackEncode(w, r, servOpts) return nil } diff --git a/server/server.go b/server/server.go index cc504cb..d5f9964 100644 --- a/server/server.go +++ b/server/server.go @@ -39,10 +39,11 @@ func New(opts Options) *Server { opts.CachePath = filepath.Clean(opts.CachePath) // ** begin controllers scanner := scanner.New(opts.DB, opts.MusicPath) + // the base controller, it's fields/middlewares are embedded/used by the + // other two admin ui and subsonic controllers base := &ctrlbase.Controller{ DB: opts.DB, MusicPath: opts.MusicPath, - CachePath: opts.CachePath, ProxyPrefix: opts.ProxyPrefix, Scanner: scanner, } @@ -51,8 +52,10 @@ func New(opts Options) *Server { r.Use(base.WithLogging) r.Use(base.WithCORS) setupMisc(r, base) - setupAdmin(r.PathPrefix("/admin").Subrouter(), ctrladmin.New(base)) - setupSubsonic(r.PathPrefix("/rest").Subrouter(), ctrlsubsonic.New(base)) + setupAdminRouter := r.PathPrefix("/admin").Subrouter() + setupAdmin(setupAdminRouter, ctrladmin.New(base)) + setupSubsonicRouter := r.PathPrefix("/rest").Subrouter() + setupSubsonic(setupSubsonicRouter, ctrlsubsonic.New(base, opts.CachePath)) // server := &http.Server{ Addr: opts.ListenAddr,