From 82e0a4bd0ed1f0eec5b6d49ca6a30b7cd2ffee1f Mon Sep 17 00:00:00 2001 From: Michael Higgins Date: Sat, 15 May 2021 17:58:53 -0400 Subject: [PATCH] New: Setting SceneName and ReleaseGroup for EpisodeFiles via API --- .../EpisodeFiles/EpisodeFileListResource.cs | 2 ++ .../EpisodeFiles/EpisodeFileModule.cs | 22 +++++++++++++++++++ .../EpisodeFiles/EpisodeFileResource.cs | 3 +++ 3 files changed, 27 insertions(+) diff --git a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileListResource.cs b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileListResource.cs index 4a540fe52..07f063236 100644 --- a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileListResource.cs +++ b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileListResource.cs @@ -9,5 +9,7 @@ namespace Sonarr.Api.V3.EpisodeFiles public List EpisodeFileIds { get; set; } public Language Language { get; set; } public QualityModel Quality { get; set; } + public string SceneName { get; set; } + public string ReleaseGroup { get; set; } } } diff --git a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileModule.cs b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileModule.cs index 6dafd0f31..6fb6c4837 100644 --- a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileModule.cs +++ b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileModule.cs @@ -9,6 +9,7 @@ using NzbDrone.Core.Exceptions; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.MediaFiles.Events; using NzbDrone.Core.Messaging.Events; +using NzbDrone.Core.Parser; using NzbDrone.Core.Tv; using NzbDrone.SignalR; using Sonarr.Http; @@ -94,6 +95,17 @@ namespace Sonarr.Api.V3.EpisodeFiles { var episodeFile = _mediaFileService.Get(episodeFileResource.Id); episodeFile.Quality = episodeFileResource.Quality; + + if (episodeFileResource.SceneName != null && SceneChecker.IsSceneTitle(episodeFileResource.SceneName)) + { + episodeFile.SceneName = episodeFileResource.SceneName; + } + + if (episodeFileResource.ReleaseGroup != null) + { + episodeFile.ReleaseGroup = episodeFileResource.ReleaseGroup; + } + _mediaFileService.Update(episodeFile); } @@ -113,6 +125,16 @@ namespace Sonarr.Api.V3.EpisodeFiles { episodeFile.Quality = resource.Quality; } + + if (resource.SceneName != null && SceneChecker.IsSceneTitle(resource.SceneName)) + { + episodeFile.SceneName = resource.SceneName; + } + + if (resource.ReleaseGroup != null) + { + episodeFile.ReleaseGroup = resource.ReleaseGroup; + } } _mediaFileService.Update(episodeFiles); diff --git a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileResource.cs b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileResource.cs index cfbc65b83..0dbe2f66d 100644 --- a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileResource.cs +++ b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileResource.cs @@ -18,6 +18,7 @@ namespace Sonarr.Api.V3.EpisodeFiles public long Size { get; set; } public DateTime DateAdded { get; set; } public string SceneName { get; set; } + public string ReleaseGroup { get; set; } public Language Language { get; set; } public QualityModel Quality { get; set; } public MediaInfoResource MediaInfo { get; set; } @@ -43,6 +44,7 @@ namespace Sonarr.Api.V3.EpisodeFiles Size = model.Size, DateAdded = model.DateAdded, SceneName = model.SceneName, + ReleaseGroup = model.ReleaseGroup, Language = model.Language, Quality = model.Quality, MediaInfo = model.MediaInfo.ToResource(model.SceneName) @@ -66,6 +68,7 @@ namespace Sonarr.Api.V3.EpisodeFiles Size = model.Size, DateAdded = model.DateAdded, SceneName = model.SceneName, + ReleaseGroup = model.ReleaseGroup, Language = model.Language, Quality = model.Quality, MediaInfo = model.MediaInfo.ToResource(model.SceneName),