You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sonarr/src/NzbDrone.Core/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateReleaseHash.cs

42 lines
1.2 KiB

using NzbDrone.Common.Extensions;
using NzbDrone.Core.Download;
using NzbDrone.Core.Parser.Model;
namespace NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.Aggregators
{
public class AggregateReleaseHash : IAggregateLocalEpisode
{
public int Order => 1;
public LocalEpisode Aggregate(LocalEpisode localEpisode, DownloadClientItem downloadClientItem)
{
var releaseHash = GetReleaseHash(localEpisode.FileEpisodeInfo);
if (releaseHash.IsNullOrWhiteSpace())
{
releaseHash = GetReleaseHash(localEpisode.DownloadClientEpisodeInfo);
}
if (releaseHash.IsNullOrWhiteSpace())
{
releaseHash = GetReleaseHash(localEpisode.FolderEpisodeInfo);
}
localEpisode.ReleaseHash = releaseHash;
return localEpisode;
}
private string GetReleaseHash(ParsedEpisodeInfo episodeInfo)
{
// ReleaseHash doesn't make sense for a FullSeason, since hashes should be specific to a file
if (episodeInfo == null || episodeInfo.FullSeason)
{
return null;
}
return episodeInfo.ReleaseHash;
}
}
}