From be937ec581a860ae04c9f508f11cdd560a9e9204 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 11 Dec 2023 21:42:00 +0200 Subject: [PATCH] New: HDR metadata for Trakt connection --- .../Trakt/Resource/TraktEpisodeResource.cs | 1 + src/NzbDrone.Core/Notifications/Trakt/Trakt.cs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/NzbDrone.Core/Notifications/Trakt/Resource/TraktEpisodeResource.cs b/src/NzbDrone.Core/Notifications/Trakt/Resource/TraktEpisodeResource.cs index 5634f9056..2b4990c41 100644 --- a/src/NzbDrone.Core/Notifications/Trakt/Resource/TraktEpisodeResource.cs +++ b/src/NzbDrone.Core/Notifications/Trakt/Resource/TraktEpisodeResource.cs @@ -9,6 +9,7 @@ namespace NzbDrone.Core.Notifications.Trakt.Resource [JsonProperty(PropertyName = "collected_at")] public DateTime CollectedAt { get; set; } public string Resolution { get; set; } + public string Hdr { get; set; } [JsonProperty(PropertyName = "audio_channels")] public string AudioChannels { get; set; } diff --git a/src/NzbDrone.Core/Notifications/Trakt/Trakt.cs b/src/NzbDrone.Core/Notifications/Trakt/Trakt.cs index af5e2f2d4..c30631c74 100644 --- a/src/NzbDrone.Core/Notifications/Trakt/Trakt.cs +++ b/src/NzbDrone.Core/Notifications/Trakt/Trakt.cs @@ -160,6 +160,7 @@ namespace NzbDrone.Core.Notifications.Trakt }; var traktResolution = MapResolution(episodeFile.Quality.Quality.Resolution, episodeFile.MediaInfo?.ScanType); + var hdr = MapHdr(episodeFile); var mediaType = MapMediaType(episodeFile.Quality.Quality.Source); var audio = MapAudio(episodeFile); var audioChannels = MapAudioChannels(episodeFile, audio); @@ -173,6 +174,7 @@ namespace NzbDrone.Core.Notifications.Trakt Number = episode.EpisodeNumber, CollectedAt = DateTime.Now, Resolution = traktResolution, + Hdr = hdr, MediaType = mediaType, AudioChannels = audioChannels, Audio = audio, @@ -316,6 +318,20 @@ namespace NzbDrone.Core.Notifications.Trakt return traktResolution; } + private string MapHdr(EpisodeFile episodeFile) + { + var traktHdr = episodeFile.MediaInfo?.VideoHdrFormat switch + { + HdrFormat.DolbyVision or HdrFormat.DolbyVisionSdr => "dolby_vision", + HdrFormat.Hdr10 or HdrFormat.DolbyVisionHdr10 => "hdr10", + HdrFormat.Hdr10Plus or HdrFormat.DolbyVisionHdr10Plus => "hdr10_plus", + HdrFormat.Hlg10 or HdrFormat.DolbyVisionHlg => "hlg", + _ => null + }; + + return traktHdr; + } + private string MapAudio(EpisodeFile episodeFile) { var audioCodec = episodeFile.MediaInfo != null ? MediaInfoFormatter.FormatAudioCodec(episodeFile.MediaInfo, episodeFile.SceneName) : string.Empty;