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:
co-authored by
Claude Opus 5
parent
2675e6d82b
commit
4a4df7a73c
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/ponzischeme89/memby/server/internal/recommend"
|
||||
)
|
||||
|
||||
const radarrCalendarCachePrefix = "radarr:calendar:v2:"
|
||||
const radarrCalendarCachePrefix = "radarr:calendar:v3:"
|
||||
const radarrScheduleDays = 5
|
||||
const radarrTheatricalDelayDays = 30
|
||||
|
||||
@@ -37,7 +37,11 @@ type radarrScheduleItem struct {
|
||||
MembyAirLabel string `json:"MembyAirLabel"`
|
||||
MembyAvailability string `json:"MembyAvailability"`
|
||||
MembyAvailabilityText string `json:"MembyAvailabilityText"`
|
||||
MembyPlayable bool `json:"MembyPlayable"`
|
||||
// Radarr's lifecycle for the title — announced, in cinemas, released — which is a
|
||||
// different question from whether the household's copy has downloaded yet.
|
||||
MembyLifecycle string `json:"MembyLifecycle,omitempty"`
|
||||
MembyLifecycleText string `json:"MembyLifecycleText,omitempty"`
|
||||
MembyPlayable bool `json:"MembyPlayable"`
|
||||
}
|
||||
|
||||
func (s *Server) radarrUpcomingMoviesRow(ctx context.Context) (*recommend.Row, error) {
|
||||
@@ -78,7 +82,7 @@ func (s *Server) radarrUpcomingMoviesRow(ctx context.Context) (*recommend.Row, e
|
||||
}
|
||||
if body, marshalErr := json.Marshal(row); marshalErr == nil {
|
||||
if cacheErr := s.cache.Set(ctx, cacheKey, body, s.cfg.RadarrTTL); cacheErr != nil {
|
||||
s.log.Warn("radarr calendar cache write failed", "error", cacheErr)
|
||||
s.loggerFor(ctx).Warn("radarr calendar cache write failed", "error", cacheErr)
|
||||
}
|
||||
}
|
||||
return row, nil
|
||||
@@ -171,6 +175,8 @@ func toRadarrScheduleItem(movie radarr.Movie, release radarrRelease, now time.Ti
|
||||
MembyAvailabilityText: availabilityText,
|
||||
MembyPlayable: false,
|
||||
}
|
||||
lifecycle := movieLifecycleTag(movie.Status)
|
||||
item.MembyLifecycle, item.MembyLifecycleText = lifecycle.Status, lifecycle.Label
|
||||
if hasRadarrCover(movie.Images, "poster") {
|
||||
item.ImageTags["Primary"] = "radarr"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user