fix(slideshow): filter out items missing logo images

Modified fetchItemIdsFromServer to include 'ImageTags' in the API request fields.
Added a filter to strictly exclude items that do not possess a Logo image.
This prevents the slideshow from displaying unstyled placeholders for media content lacking proper branding.
This commit is contained in:
Charles Bel authored and GitHub committed 2026-01-11 12:49:43 +01:00
1 parent 4618b8b9fa
commit 34b65415f2
1 file changed
+5 -2
+5 -2
View File
@@ -776,7 +776,7 @@ const ApiUtils = {
console.log("Fetching random items from server...");
const response = await fetch(
`${STATE.jellyfinData.serverAddress}/Items?IncludeItemTypes=Movie,Series&Recursive=true&hasOverview=true&imageTypes=Logo,Backdrop&sortBy=Random&isPlayed=False&enableUserData=true&Limit=${CONFIG.maxItems}&fields=Id`,
`${STATE.jellyfinData.serverAddress}/Items?IncludeItemTypes=Movie,Series&Recursive=true&hasOverview=true&imageTypes=Logo,Backdrop&sortBy=Random&isPlayed=False&enableUserData=true&Limit=${CONFIG.maxItems}&fields=Id,ImageTags`,
{
headers: this.getAuthHeaders(),
}
@@ -796,7 +796,10 @@ const ApiUtils = {
`Successfully fetched ${items.length} random items from server`
);
return items.map((item) => item.Id);
return items
.filter(item => item.ImageTags && item.ImageTags.Logo)
.map((item) => item.Id);
} catch (error) {
console.error("Error fetching item IDs:", error);
return [];