diff --git a/packages/integrations/src/media-organizer/lidarr/lidarr-integration.ts b/packages/integrations/src/media-organizer/lidarr/lidarr-integration.ts index b71af7482..b515e7b2f 100644 --- a/packages/integrations/src/media-organizer/lidarr/lidarr-integration.ts +++ b/packages/integrations/src/media-organizer/lidarr/lidarr-integration.ts @@ -116,7 +116,19 @@ export class LidarrIntegration extends MediaOrganizerIntegration { const lidarrCalendarEventImageSchema = z.array( z.object({ - coverType: z.enum(["screenshot", "poster", "banner", "fanart", "clearlogo", "cover"]), + // See https://github.com/Lidarr/Lidarr/blob/bc6417229e9da3d3cab418f92b46eec7a76168c2/src/NzbDrone.Core/MediaCover/MediaCover.cs#L8-L20 + coverType: z.enum([ + "unknown", + "poster", + "banner", + "fanart", + "screenshot", + "headshot", + "cover", + "disc", + "logo", + "clearlogo", + ]), remoteUrl: z.string().url(), }), ); diff --git a/packages/integrations/src/media-organizer/media-organizer-integration.ts b/packages/integrations/src/media-organizer/media-organizer-integration.ts index 3b841e7c0..a576cd92f 100644 --- a/packages/integrations/src/media-organizer/media-organizer-integration.ts +++ b/packages/integrations/src/media-organizer/media-organizer-integration.ts @@ -7,11 +7,15 @@ export abstract class MediaOrganizerIntegration extends Integration { * We do this to attempt to find the best quality image for the show. */ protected readonly priorities: string[] = [ - "cover", // Official, perfect aspect ratio + "cover", // Official, perfect aspect ratio, best for music "poster", // Official, perfect aspect ratio "banner", // Official, bad aspect ratio + "disc", // Official, second best for music / books + "logo", // Official, possibly unrelated "fanart", // Unofficial, possibly bad quality "screenshot", // Bad aspect ratio, possibly bad quality - "clearlogo", // Without background, bad aspect ratio + "clearlogo", // Without background, bad aspect ratio, + "headshot", // Unrelated + "unknown", // Not known, possibly good or bad, better not to choose ]; } diff --git a/packages/integrations/src/media-organizer/radarr/radarr-integration.ts b/packages/integrations/src/media-organizer/radarr/radarr-integration.ts index 330de8bc8..2e7008036 100644 --- a/packages/integrations/src/media-organizer/radarr/radarr-integration.ts +++ b/packages/integrations/src/media-organizer/radarr/radarr-integration.ts @@ -106,7 +106,8 @@ export class RadarrIntegration extends MediaOrganizerIntegration { const radarrCalendarEventImageSchema = z.array( z.object({ - coverType: z.enum(["screenshot", "poster", "banner", "fanart", "clearlogo"]), + // See https://github.com/Radarr/Radarr/blob/a3b1512552a8a5bc0c0d399d961ccbf0dba97749/src/NzbDrone.Core/MediaCover/MediaCover.cs#L6-L15 + coverType: z.enum(["unknown", "poster", "banner", "fanart", "screenshot", "headshot", "clearlogo"]), remoteUrl: z.string().url(), }), ); diff --git a/packages/integrations/src/media-organizer/readarr/readarr-integration.ts b/packages/integrations/src/media-organizer/readarr/readarr-integration.ts index e572c60e0..adbf159ca 100644 --- a/packages/integrations/src/media-organizer/readarr/readarr-integration.ts +++ b/packages/integrations/src/media-organizer/readarr/readarr-integration.ts @@ -94,7 +94,19 @@ export class ReadarrIntegration extends MediaOrganizerIntegration { const readarrCalendarEventImageSchema = z.array( z.object({ - coverType: z.enum(["screenshot", "poster", "banner", "fanart", "clearlogo", "cover"]), + // See https://github.com/Readarr/Readarr/blob/e5519d60c969105db2f2ab3a8f1cf61814551bb9/src/NzbDrone.Core/MediaCover/MediaCover.cs#L8-L20 + coverType: z.enum([ + "unknown", + "poster", + "banner", + "fanart", + "screenshot", + "headshot", + "cover", + "disc", + "logo", + "clearlogo", + ]), url: z.string().transform((url) => url.replace(/\?lastWrite=[0-9]+/, "")), // returns a random string, needs to be removed for loading the image }), ); diff --git a/packages/integrations/src/media-organizer/sonarr/sonarr-integration.ts b/packages/integrations/src/media-organizer/sonarr/sonarr-integration.ts index 8f823e903..c1d8847a1 100644 --- a/packages/integrations/src/media-organizer/sonarr/sonarr-integration.ts +++ b/packages/integrations/src/media-organizer/sonarr/sonarr-integration.ts @@ -105,7 +105,8 @@ export class SonarrIntegration extends MediaOrganizerIntegration { const sonarrCalendarEventImageSchema = z.array( z.object({ - coverType: z.enum(["screenshot", "poster", "banner", "fanart", "clearlogo"]), + // See https://github.com/Sonarr/Sonarr/blob/9e5ebdc6245d4714776b53127a1e6b63c25fbcb9/src/NzbDrone.Core/MediaCover/MediaCover.cs#L5-L14 + coverType: z.enum(["unknown", "poster", "banner", "fanart", "screenshot", "headshot", "clearlogo"]), remoteUrl: z.string().url(), }), );