fix(plex): tolerate scalar schema drift

This commit is contained in:
edde746
2026-07-12 08:42:18 +02:00
parent a809cbbcef
commit 9c6fcbc841
14 changed files with 197 additions and 79 deletions
+11 -6
View File
@@ -2670,16 +2670,21 @@ class PlexClient
),
];
}
final playQueueID = flexibleInt(container['playQueueID']);
final playQueueVersion = flexibleInt(container['playQueueVersion']);
if (playQueueID == null || playQueueVersion == null) {
throw const FormatException('Plex play queue response is missing its numeric id or version');
}
return PlayQueueResponse(
playQueueID: (container['playQueueID'] as num).toInt(),
playQueueSelectedItemID: (container['playQueueSelectedItemID'] as num?)?.toInt(),
playQueueSelectedItemOffset: (container['playQueueSelectedItemOffset'] as num?)?.toInt(),
playQueueID: playQueueID,
playQueueSelectedItemID: flexibleInt(container['playQueueSelectedItemID']),
playQueueSelectedItemOffset: flexibleInt(container['playQueueSelectedItemOffset']),
playQueueSelectedMetadataItemID: container['playQueueSelectedMetadataItemID'] as String?,
playQueueShuffled: flexibleBool(container['playQueueShuffled']),
playQueueSourceURI: container['playQueueSourceURI'] as String?,
playQueueTotalCount: (container['playQueueTotalCount'] as num?)?.toInt(),
playQueueVersion: (container['playQueueVersion'] as num).toInt(),
size: (container['size'] as num?)?.toInt(),
playQueueTotalCount: flexibleInt(container['playQueueTotalCount']),
playQueueVersion: playQueueVersion,
size: flexibleInt(container['size']),
items: items,
);
}