App v0.2.26 and gateway 0.1.20

Client: seek controls, Bazarr subtitle download and cast panel in the
player; MDBList ratings strip; episode and schedule detail pages; series
pace estimate; what's new panel; install-permission onboarding step;
synced per-profile preferences; Emby outage banner.

Gateway: rebuilt admin console (one fragment per page), preference
history and restore, merged Continue Watching, Emby health probe,
subtitle selection and Bazarr download, structured request logging with
per-request identity, and embedded build version.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
ponzischeme89
2026-08-06 22:33:56 +12:00
co-authored by Claude Opus 5
parent 2675e6d82b
commit 4a4df7a73c
257 changed files with 24868 additions and 3108 deletions
+4 -4
View File
@@ -58,7 +58,7 @@ func (s *Server) handleImage(w http.ResponseWriter, r *http.Request, sess store.
resp, err := s.emby.ImageResponse(r.Context(), credentials(sess), itemID, imageType, params)
if err != nil {
s.writeUpstreamError(w, err, "could not load the image")
s.writeUpstreamError(r.Context(), w, err, "could not load the image")
return
}
defer resp.Body.Close()
@@ -79,7 +79,7 @@ func (s *Server) handleImage(w http.ResponseWriter, r *http.Request, sess store.
}
w.WriteHeader(http.StatusOK)
copyImage(w, r, resp.Body, s.log,
copyImage(w, r, resp.Body, s.loggerFor(r.Context()),
"source", "emby", "item_id", itemID, "image_type", imageType)
}
@@ -123,7 +123,7 @@ func (s *Server) handleRadarrImage(w http.ResponseWriter, r *http.Request, itemI
}
w.Header().Set("Cache-Control", "private, max-age=3600")
w.WriteHeader(http.StatusOK)
copyImage(w, r, resp.Body, s.log,
copyImage(w, r, resp.Body, s.loggerFor(r.Context()),
"source", "radarr", "item_id", itemID, "image_type", imageType)
}
@@ -167,7 +167,7 @@ func (s *Server) handleSonarrImage(w http.ResponseWriter, r *http.Request, itemI
}
w.Header().Set("Cache-Control", "private, max-age=3600")
w.WriteHeader(http.StatusOK)
copyImage(w, r, resp.Body, s.log,
copyImage(w, r, resp.Body, s.loggerFor(r.Context()),
"source", "sonarr", "item_id", itemID, "image_type", imageType)
}