fix(availability-sync): refine 4k media availability checks for both movies and TV shows

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
This commit is contained in:
0xsysr3ll
2026-01-13 23:37:34 +01:00
parent 844f86d41d
commit b46a7d8804

View File

@@ -881,21 +881,27 @@ class AvailabilitySync {
await this.plexClient?.getChildrenMetadata(ratingKey4k);
}
if (plexMedia && media.mediaType === 'movie') {
const has4kByWidth = plexMedia.Media?.some(
(mediaItem) => (mediaItem.width ?? 0) >= 2000
);
if (is4k) {
if (ratingKey === ratingKey4k || !has4kByWidth) {
plexMedia = undefined;
}
} else {
const hasNon4kByWidth = plexMedia.Media?.some(
(mediaItem) =>
(mediaItem.width ?? 0) < 2000 && (mediaItem.width ?? 0) > 0
if (plexMedia) {
if (media.mediaType === 'movie') {
const has4kByWidth = plexMedia.Media?.some(
(mediaItem) => (mediaItem.width ?? 0) >= 2000
);
if (!hasNon4kByWidth && has4kByWidth) {
if (is4k) {
if (ratingKey === ratingKey4k || !has4kByWidth) {
plexMedia = undefined;
}
} else {
const hasNon4kByWidth = plexMedia.Media?.some(
(mediaItem) =>
(mediaItem.width ?? 0) < 2000 && (mediaItem.width ?? 0) > 0
);
if (!hasNon4kByWidth && has4kByWidth) {
plexMedia = undefined;
}
}
} else if (media.mediaType === 'tv' && is4k) {
if (ratingKey === ratingKey4k) {
plexMedia = undefined;
}
}