Merge pull request #8181 from Shadowghost/fix-nextup-episode

Fix episode image handling in recently added
This commit is contained in:
Niels van Velzen
2026-07-21 21:43:27 +02:00
committed by GitHub
4 changed files with 17 additions and 3 deletions
@@ -1087,7 +1087,7 @@ function renderMoreFromSeason(view, item, apiClient) {
cardBuilder.buildCards(result.Items, {
parentContainer: section,
itemsContainer: itemsContainer,
shape: 'autooverflow',
shape: 'overflowBackdrop',
sectionTitleTagName: 'h2',
scalable: true,
showTitle: true,
+14 -2
View File
@@ -35,6 +35,8 @@ export function getCardImageUrl({
let imgType: ImageType | undefined;
let itemId = null;
const skipEpisodeParentPoster = item.Type === 'Episode' && uiAspect != null && uiAspect > 1;
/* eslint-disable sonarjs/no-duplicated-branches */
if (options.preferThumb && item.ImageTags?.Thumb) {
imgType = ImageType.Thumb;
@@ -68,6 +70,16 @@ export function getCardImageUrl({
imgType = ImageType.Backdrop;
imgTag = item.ParentBackdropImageTags[0];
itemId = item.ParentBackdropItemId;
} else if (options.preferParentPoster && !options.preferThumb && item.Type === 'Episode'
&& ((item.ParentPrimaryImageTag && item.ParentPrimaryImageItemId) || (item.SeriesPrimaryImageTag && item.SeriesId))) {
imgType = ImageType.Primary;
if (item.ParentPrimaryImageTag && item.ParentPrimaryImageItemId) {
imgTag = item.ParentPrimaryImageTag;
itemId = item.ParentPrimaryImageItemId;
} else {
imgTag = item.SeriesPrimaryImageTag;
itemId = item.SeriesId;
}
} else if (item.ImageTags?.Primary && (item.Type !== 'Episode' || item.ChildCount !== 0)) {
imgType = ImageType.Primary;
imgTag = item.ImageTags.Primary;
@@ -80,7 +92,7 @@ export function getCardImageUrl({
if (primaryImageAspectRatio && uiAspect) {
coverImage = (Math.abs(primaryImageAspectRatio - uiAspect) / uiAspect) <= 0.2;
}
} else if (item.SeriesPrimaryImageTag) {
} else if (item.SeriesPrimaryImageTag && !skipEpisodeParentPoster) {
imgType = ImageType.Primary;
imgTag = item.SeriesPrimaryImageTag;
itemId = item.SeriesId;
@@ -97,7 +109,7 @@ export function getCardImageUrl({
if (primaryImageAspectRatio && uiAspect) {
coverImage = (Math.abs(primaryImageAspectRatio - uiAspect) / uiAspect) <= 0.2;
}
} else if (item.ParentPrimaryImageTag) {
} else if (item.ParentPrimaryImageTag && !skipEpisodeParentPoster) {
imgType = ImageType.Primary;
imgTag = item.ParentPrimaryImageTag;
itemId = item.ParentPrimaryImageItemId;
@@ -83,6 +83,7 @@ function getLatestItemsHtmlFn(
items: items,
shape: shape,
preferThumb: viewType !== 'movies' && viewType !== 'tvshows' && itemType !== 'Channel' && viewType !== 'music' ? 'auto' : null,
preferParentPoster: true,
showUnplayedIndicator: false,
showChildCountIndicator: true,
context: 'home',
+1
View File
@@ -28,6 +28,7 @@ export interface CardOptions {
preferThumb?: boolean | string | null;
preferDisc?: boolean;
preferLogo?: boolean;
preferParentPoster?: boolean;
scalable?: boolean;
shape?: CardShape;
defaultShape?: CardShape;