mirror of
https://github.com/Radarr/Radarr
synced 2025-02-24 15:21:28 +00:00
New: 3D and HDR metadata for Trakt connection
This commit is contained in:
parent
cc0a448bc8
commit
1d70f36e7d
3 changed files with 34 additions and 8 deletions
|
@ -48,13 +48,14 @@ public void Setup()
|
|||
Subject.Definition = _traktDefinition;
|
||||
}
|
||||
|
||||
private void GiventValidMediaInfo(Quality quality, string audioChannels, string audioFormat, string scanType)
|
||||
private void GiventValidMediaInfo(Quality quality, string audioChannels, string audioFormat, string scanType, HdrFormat hdrFormat = HdrFormat.None)
|
||||
{
|
||||
_downloadMessage.MovieFile.MediaInfo = new MediaInfoModel
|
||||
{
|
||||
AudioChannelPositions = audioChannels,
|
||||
AudioFormat = audioFormat,
|
||||
ScanType = scanType
|
||||
ScanType = scanType,
|
||||
VideoHdrFormat = hdrFormat
|
||||
};
|
||||
|
||||
_downloadMessage.MovieFile.Quality.Quality = quality;
|
||||
|
@ -72,7 +73,7 @@ public void should_add_collection_movie_if_null_mediainfo()
|
|||
[Test]
|
||||
public void should_add_collection_movie_if_valid_mediainfo()
|
||||
{
|
||||
GiventValidMediaInfo(Quality.Bluray1080p, "5.1", "DTS", "Progressive");
|
||||
GiventValidMediaInfo(Quality.Bluray2160p, "5.1", "DTS", "Progressive", HdrFormat.DolbyVisionHdr10);
|
||||
|
||||
Subject.OnDownload(_downloadMessage);
|
||||
|
||||
|
@ -80,15 +81,16 @@ public void should_add_collection_movie_if_valid_mediainfo()
|
|||
.Verify(v => v.AddToCollection(It.Is<TraktCollectMoviesResource>(t =>
|
||||
t.Movies.First().Audio == "dts" &&
|
||||
t.Movies.First().AudioChannels == "5.1" &&
|
||||
t.Movies.First().Resolution == "hd_1080p" &&
|
||||
t.Movies.First().MediaType == "bluray"),
|
||||
t.Movies.First().Resolution == "uhd_4k" &&
|
||||
t.Movies.First().MediaType == "bluray" &&
|
||||
t.Movies.First().Hdr == "hdr10"),
|
||||
It.IsAny<string>()), Times.Once());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_format_audio_channels_to_one_decimal_when_adding_collection_movie()
|
||||
{
|
||||
GiventValidMediaInfo(Quality.Bluray1080p, "2.0", "DTS", "Progressive");
|
||||
GiventValidMediaInfo(Quality.Bluray2160p, "2.0", "DTS", "Progressive", HdrFormat.DolbyVisionHdr10);
|
||||
|
||||
Subject.OnDownload(_downloadMessage);
|
||||
|
||||
|
@ -96,8 +98,9 @@ public void should_format_audio_channels_to_one_decimal_when_adding_collection_m
|
|||
.Verify(v => v.AddToCollection(It.Is<TraktCollectMoviesResource>(t =>
|
||||
t.Movies.First().Audio == "dts" &&
|
||||
t.Movies.First().AudioChannels == "2.0" &&
|
||||
t.Movies.First().Resolution == "hd_1080p" &&
|
||||
t.Movies.First().MediaType == "bluray"),
|
||||
t.Movies.First().Resolution == "uhd_4k" &&
|
||||
t.Movies.First().MediaType == "bluray" &&
|
||||
t.Movies.First().Hdr == "hdr10"),
|
||||
It.IsAny<string>()), Times.Once());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,10 +8,16 @@ public class TraktCollectMovie : TraktMovieResource
|
|||
[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; }
|
||||
public string Audio { get; set; }
|
||||
|
||||
[JsonProperty(PropertyName = "media_type")]
|
||||
public string MediaType { get; set; }
|
||||
|
||||
[JsonProperty(PropertyName = "3d")]
|
||||
public bool Is3D { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -154,6 +154,7 @@ private void AddMovieToCollection(TraktSettings settings, Movie movie, MovieFile
|
|||
};
|
||||
|
||||
var traktResolution = MapResolution(movieFile.Quality.Quality.Resolution, movieFile.MediaInfo?.ScanType);
|
||||
var hdr = MapHdr(movieFile);
|
||||
var mediaType = MapMediaType(movieFile.Quality.Quality.Source);
|
||||
var audio = MapAudio(movieFile);
|
||||
var audioChannels = MapAudioChannels(movieFile);
|
||||
|
@ -164,9 +165,11 @@ private void AddMovieToCollection(TraktSettings settings, Movie movie, MovieFile
|
|||
Year = movie.Year,
|
||||
CollectedAt = DateTime.Now,
|
||||
Resolution = traktResolution,
|
||||
Hdr = hdr,
|
||||
MediaType = mediaType,
|
||||
AudioChannels = audioChannels,
|
||||
Audio = audio,
|
||||
Is3D = movieFile.MediaInfo?.VideoMultiViewCount > 1,
|
||||
Ids = new TraktMovieIdsResource
|
||||
{
|
||||
Tmdb = movie.MovieMetadata.Value.TmdbId,
|
||||
|
@ -230,6 +233,20 @@ private string MapResolution(int resolution, string scanType)
|
|||
return traktResolution;
|
||||
}
|
||||
|
||||
private string MapHdr(MovieFile movieFile)
|
||||
{
|
||||
var traktHdr = movieFile.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(MovieFile movieFile)
|
||||
{
|
||||
var audioCodec = movieFile.MediaInfo != null ? MediaInfoFormatter.FormatAudioCodec(movieFile.MediaInfo, movieFile.SceneName) : string.Empty;
|
||||
|
|
Loading…
Reference in a new issue