From e02ee24f70bae47731ddf445057703ce273b42ef Mon Sep 17 00:00:00 2001 From: 0xsysr3ll <31414959+0xSysR3ll@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:42:11 +0200 Subject: [PATCH] fix(media): update delete media file logic to include is4k parameter (#1832) * fix(media): update delete media file logic to include is4k parameter * fix(media): revert to MANAGE_REQUESTS permission --- jellyseerr-api.yml | 9 ++++++++- server/routes/media.ts | 6 +++++- src/components/ManageSlideOver/index.tsx | 10 ++++++---- src/components/RequestList/RequestItem/index.tsx | 4 +++- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/jellyseerr-api.yml b/jellyseerr-api.yml index 600bd81b0..7ec1076c6 100644 --- a/jellyseerr-api.yml +++ b/jellyseerr-api.yml @@ -6655,9 +6655,16 @@ paths: example: '1' schema: type: string + - in: query + name: is4k + description: Whether to remove from 4K service instance (true) or regular service instance (false) + required: false + example: false + schema: + type: boolean responses: '204': - description: Succesfully removed media item + description: Successfully removed media item /media/{mediaId}/{status}: post: summary: Update media status diff --git a/server/routes/media.ts b/server/routes/media.ts index 5e90f4ba7..b9983d8bf 100644 --- a/server/routes/media.ts +++ b/server/routes/media.ts @@ -197,8 +197,10 @@ mediaRoutes.delete( const media = await mediaRepository.findOneOrFail({ where: { id: Number(req.params.id) }, }); - const is4k = media.serviceUrl4k !== undefined; + + const is4k = req.query.is4k === 'true'; const isMovie = media.mediaType === MediaType.MOVIE; + let serviceSettings; if (isMovie) { serviceSettings = settings.radarr.find( @@ -225,6 +227,7 @@ mediaRoutes.delete( ); } } + if (!serviceSettings) { logger.warn( `There is no default ${ @@ -239,6 +242,7 @@ mediaRoutes.delete( ); return; } + let service; if (isMovie) { service = new RadarrAPI({ diff --git a/src/components/ManageSlideOver/index.tsx b/src/components/ManageSlideOver/index.tsx index ee32590ee..c1b115d41 100644 --- a/src/components/ManageSlideOver/index.tsx +++ b/src/components/ManageSlideOver/index.tsx @@ -118,9 +118,11 @@ const ManageSlideOver = ({ } }; - const deleteMediaFile = async () => { + const deleteMediaFile = async (is4k = false) => { if (data.mediaInfo) { - await axios.delete(`/api/v1/media/${data.mediaInfo.id}/file`); + await axios.delete( + `/api/v1/media/${data.mediaInfo.id}/file?is4k=${is4k}` + ); await axios.delete(`/api/v1/media/${data.mediaInfo.id}`); revalidate(); onClose(); @@ -414,7 +416,7 @@ const ManageSlideOver = ({ isDefaultService() && (