0.2.64 update

This commit is contained in:
ponzischeme89
2026-08-15 09:23:26 +12:00
parent a2ca7e8061
commit d5d47473a2
90 changed files with 9188 additions and 451 deletions
+14 -3
View File
@@ -27,6 +27,7 @@ import (
"github.com/ponzischeme89/memby/server/internal/bazarr"
"github.com/ponzischeme89/memby/server/internal/cache"
"github.com/ponzischeme89/memby/server/internal/config"
"github.com/ponzischeme89/memby/server/internal/credits"
"github.com/ponzischeme89/memby/server/internal/emby"
"github.com/ponzischeme89/memby/server/internal/foryou"
"github.com/ponzischeme89/memby/server/internal/integrations"
@@ -51,6 +52,12 @@ type Server struct {
radarr *radarr.Client
bazarr *bazarr.Client
mdblist *mdblist.Client
// credits discovers where an episode's closing credits begin, for the small number of
// episodes the household is about to watch. Nil when the subsystem is switched off, and
// every call site tolerates that — a missing marker simply means no Skip Credits button,
// which is the same state a library with no chapter markers is already in.
credits *credits.Service
creditsLoad *credits.PlaybackLoad
syncer syncerHandle
log *slog.Logger
events *serverlogging.Buffer
@@ -112,6 +119,8 @@ type Deps struct {
Radarr *radarr.Client
Bazarr *bazarr.Client
MDBList *mdblist.Client
Credits *credits.Service
CreditsLoad *credits.PlaybackLoad
Syncer syncerHandle
Log *slog.Logger
Events *serverlogging.Buffer
@@ -133,6 +142,8 @@ func New(cfg config.Config, deps Deps) *Server {
radarr: deps.Radarr,
bazarr: deps.Bazarr,
mdblist: deps.MDBList,
credits: deps.Credits,
creditsLoad: deps.CreditsLoad,
syncer: deps.Syncer,
log: deps.Log,
events: deps.Events,
@@ -271,9 +282,9 @@ func (s *Server) Routes() http.Handler {
// process. Keep it outside authentication and maintenance so offline/start-up fallback
// never depends on a session being available.
mux.HandleFunc("GET /v1/config", s.handleRemoteConfig)
// Update policy is app-scoped, not user-scoped. Keep it outside authentication and
// maintenance so a fresh install, a signed-out TV, and a retired build can all learn
// whether the server requires an update. A valid session enriches only its log context.
// Update compatibility is app-scoped; a signed-in viewer may only mute the optional
// prompt. Keep this outside authentication and maintenance so a fresh install, a
// signed-out TV, and especially a retired build can still learn what it must do.
mux.Handle("GET /v1/update", s.identifyOptionalSession(http.HandlerFunc(s.handleUpdate)))
// Exact route outside the maintenance gate: signed-in clients poll this lightweight
// status even while every normal /v1 operation is deliberately unavailable.