From aa3670322dff7990e7721230420ad68f92255d95 Mon Sep 17 00:00:00 2001 From: Gauthier Date: Mon, 26 Aug 2024 12:02:24 +0200 Subject: [PATCH] fix: save the settings modified by the override rules --- server/entity/MediaRequest.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts index bb852506..cacb1b28 100644 --- a/server/entity/MediaRequest.ts +++ b/server/entity/MediaRequest.ts @@ -804,6 +804,7 @@ export class MediaRequest { )?.rootFolder; if (overrideRootFolder) { rootFolder = overrideRootFolder; + this.rootFolder = rootFolder; logger.info( `Request has an override root folder from override rules: ${rootFolder}`, { @@ -834,6 +835,7 @@ export class MediaRequest { )?.profileId; if (overrideProfileId) { qualityProfile = overrideProfileId; + this.profileId = qualityProfile; logger.info( `Request has an override quality profile ID from override rules: ${qualityProfile}`, { @@ -864,6 +866,7 @@ export class MediaRequest { ...overrideTags.split(',').map((tag) => Number(tag)), ]), ]; + this.tags = tags; logger.info(`Request has override tags from override rules`, { label: 'Media Request', requestId: this.id, @@ -873,6 +876,9 @@ export class MediaRequest { } } + const requestRepository = getRepository(MediaRequest); + requestRepository.save(this); + if (radarrSettings.tagRequests) { let userTag = (await radarr.getTags()).find((v) => v.label.startsWith(this.requestedBy.id + ' - ') @@ -914,7 +920,6 @@ export class MediaRequest { mediaId: this.media.id, }); - const requestRepository = getRepository(MediaRequest); this.status = MediaRequestStatus.APPROVED; await requestRepository.save(this); return; @@ -954,8 +959,6 @@ export class MediaRequest { await mediaRepository.save(media); }) .catch(async () => { - const requestRepository = getRepository(MediaRequest); - this.status = MediaRequestStatus.FAILED; requestRepository.save(this); @@ -1055,6 +1058,7 @@ export class MediaRequest { throw new Error('Media data not found'); } + const requestRepository = getRepository(MediaRequest); if ( media[this.is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE ) { @@ -1064,7 +1068,6 @@ export class MediaRequest { mediaId: this.media.id, }); - const requestRepository = getRepository(MediaRequest); this.status = MediaRequestStatus.APPROVED; await requestRepository.save(this); return; @@ -1079,7 +1082,6 @@ export class MediaRequest { const tvdbId = series.external_ids.tvdb_id ?? media.tvdbId; if (!tvdbId) { - const requestRepository = getRepository(MediaRequest); await mediaRepository.remove(media); await requestRepository.remove(this); throw new Error('TVDB ID not found'); @@ -1183,6 +1185,7 @@ export class MediaRequest { )?.rootFolder; if (overrideRootFolder) { rootFolder = overrideRootFolder; + this.rootFolder = rootFolder; logger.info( `Request has an override root folder from override rules: ${rootFolder}`, { @@ -1210,6 +1213,7 @@ export class MediaRequest { )?.profileId; if (overrideProfileId) { qualityProfile = overrideProfileId; + this.profileId = qualityProfile; logger.info( `Request has an override quality profile ID from override rules: ${qualityProfile}`, { @@ -1255,6 +1259,7 @@ export class MediaRequest { ...overrideTags.split(',').map((tag) => Number(tag)), ]), ]; + this.tags = tags; logger.info(`Request has override tags from override rules`, { label: 'Media Request', requestId: this.id, @@ -1296,6 +1301,8 @@ export class MediaRequest { } } + requestRepository.save(this); + const sonarrSeriesOptions: AddSeriesOptions = { profileId: qualityProfile, languageProfileId: languageProfile, @@ -1332,8 +1339,6 @@ export class MediaRequest { await mediaRepository.save(media); }) .catch(async () => { - const requestRepository = getRepository(MediaRequest); - this.status = MediaRequestStatus.FAILED; requestRepository.save(this);