diff --git a/server/routes/media.ts b/server/routes/media.ts index f4fc878bd..a3a97c13d 100644 --- a/server/routes/media.ts +++ b/server/routes/media.ts @@ -112,7 +112,7 @@ mediaRoutes.post< return next({ status: 404, message: 'Media does not exist.' }); } - const is4k = Boolean(req.body.is4k); + const is4k = String(req.body.is4k) === 'true'; switch (req.params.status) { case 'available': @@ -198,7 +198,7 @@ mediaRoutes.delete( where: { id: Number(req.params.id) }, }); - const is4k = req.query.is4k === 'true'; + const is4k = String(req.query.is4k) === 'true'; const isMovie = media.mediaType === MediaType.MOVIE; let serviceSettings; @@ -212,18 +212,19 @@ mediaRoutes.delete( ); } + const specificServiceId = is4k ? media.serviceId4k : media.serviceId; if ( - media.serviceId && - media.serviceId >= 0 && - serviceSettings?.id !== media.serviceId + specificServiceId && + specificServiceId >= 0 && + serviceSettings?.id !== specificServiceId ) { if (isMovie) { serviceSettings = settings.radarr.find( - (radarr) => radarr.id === media.serviceId + (radarr) => radarr.id === specificServiceId ); } else { serviceSettings = settings.sonarr.find( - (sonarr) => sonarr.id === media.serviceId + (sonarr) => sonarr.id === specificServiceId ); } } @@ -257,13 +258,7 @@ mediaRoutes.delete( } if (isMovie) { - await (service as RadarrAPI).removeMovie( - parseInt( - is4k - ? (media.externalServiceSlug4k as string) - : (media.externalServiceSlug as string) - ) - ); + await (service as RadarrAPI).removeMovie(media.tmdbId); } else { const tmdb = new TheMovieDb(); const series = await tmdb.getTvShow({ tvId: media.tmdbId }); diff --git a/src/components/ManageSlideOver/index.tsx b/src/components/ManageSlideOver/index.tsx index c1b115d41..7a2c1047e 100644 --- a/src/components/ManageSlideOver/index.tsx +++ b/src/components/ManageSlideOver/index.tsx @@ -150,6 +150,31 @@ const ManageSlideOver = ({ return false; }; + const isDefault4kService = () => { + if (data.mediaInfo) { + if (data.mediaInfo.mediaType === MediaType.MOVIE) { + return ( + radarrData?.find( + (radarr) => + radarr.isDefault && + radarr.is4k && + radarr.id === data.mediaInfo?.serviceId4k + ) !== undefined + ); + } else { + return ( + sonarrData?.find( + (sonarr) => + sonarr.isDefault && + sonarr.is4k && + sonarr.id === data.mediaInfo?.serviceId4k + ) !== undefined + ); + } + } + return false; + }; + const markAvailable = async (is4k = false) => { if (data.mediaInfo) { await axios.post(`/api/v1/media/${data.mediaInfo?.id}/available`, { @@ -572,7 +597,7 @@ const ManageSlideOver = ({ - {isDefaultService() && ( + {isDefault4kService() && (
deleteMediaFile(true)}