mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-23 22:25:09 -04:00
@@ -43,4 +43,4 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
return "[Rejected " + Rejections.Count() + "]" + RemoteAlbum;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,8 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
|
||||
private int CompareAlbumCount(DownloadDecision x, DownloadDecision y)
|
||||
{
|
||||
var discographyCompare = CompareBy(x.RemoteAlbum, y.RemoteAlbum,
|
||||
var discographyCompare = CompareBy(x.RemoteAlbum,
|
||||
y.RemoteAlbum,
|
||||
remoteAlbum => remoteAlbum.ParsedAlbumInfo.Discography);
|
||||
|
||||
if (discographyCompare != 0)
|
||||
@@ -162,7 +163,6 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
private int CompareSize(DownloadDecision x, DownloadDecision y)
|
||||
{
|
||||
// TODO: Is smaller better? Smaller for usenet could mean no par2 files.
|
||||
|
||||
return CompareBy(x.RemoteAlbum, y.RemoteAlbum, remoteAlbum => remoteAlbum.Release.Size.Round(200.Megabytes()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,8 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
if (parsedAlbumInfo == null && searchCriteria != null)
|
||||
{
|
||||
parsedAlbumInfo = Parser.Parser.ParseAlbumTitleWithSearchCriteria(report.Title,
|
||||
searchCriteria.Artist, searchCriteria.Albums);
|
||||
searchCriteria.Artist,
|
||||
searchCriteria.Albums);
|
||||
}
|
||||
|
||||
if (parsedAlbumInfo != null)
|
||||
@@ -92,7 +93,6 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
//{
|
||||
// parsedAlbumInfo.AlbumTitle = report.Album;
|
||||
//}
|
||||
|
||||
if (!parsedAlbumInfo.ArtistName.IsNullOrWhiteSpace())
|
||||
{
|
||||
var remoteAlbum = _parsingService.Map(parsedAlbumInfo, searchCriteria);
|
||||
@@ -116,6 +116,7 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
if (remoteAlbum.Artist == null)
|
||||
{
|
||||
decision = new DownloadDecision(remoteAlbum, new Rejection("Unknown Artist"));
|
||||
|
||||
// shove in the searched artist in case of forced download in interactive search
|
||||
if (searchCriteria != null)
|
||||
{
|
||||
@@ -156,7 +157,6 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
{
|
||||
_logger.Debug("Release rejected for the following reasons: {0}", string.Join(", ", decision.Rejections));
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
_logger.Debug("Release accepted");
|
||||
@@ -177,8 +177,12 @@ namespace NzbDrone.Core.DecisionEngine
|
||||
.Where(c => c != null)
|
||||
.ToArray();
|
||||
|
||||
if (reasons.Any()) break;
|
||||
if (reasons.Any())
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return new DownloadDecision(remoteAlbum, reasons.ToArray());
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.Profiles.Delay;
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Qualities;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
@@ -21,7 +20,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
public SpecificationPriority Priority => SpecificationPriority.Default;
|
||||
public RejectionType Type => RejectionType.Permanent;
|
||||
|
||||
|
||||
public Decision IsSatisfiedBy(RemoteAlbum subject, SearchCriteriaBase searchCriteria)
|
||||
{
|
||||
_logger.Debug("Beginning size check for: {0}", subject);
|
||||
@@ -53,6 +52,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
return Decision.Reject("{0} is smaller than minimum allowed {1}", subject.Release.Size.SizeSuffix(), minSize.SizeSuffix());
|
||||
}
|
||||
}
|
||||
|
||||
if (!qualityDefinition.MaxSize.HasValue || qualityDefinition.MaxSize.Value == 0)
|
||||
{
|
||||
_logger.Debug("Max size is unlimited - skipping check.");
|
||||
@@ -61,7 +61,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
var maxSize = qualityDefinition.MaxSize.Value.Kilobits();
|
||||
var maxReleaseDuration = subject.Albums.Select(a => a.AlbumReleases.Value.Where(r => r.Monitored || a.AnyReleaseOk).Select(r => r.Duration).Max()).Sum() / 1000;
|
||||
|
||||
|
||||
//Multiply maxSize by Album.Duration
|
||||
maxSize = maxSize * maxReleaseDuration;
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
continue;
|
||||
}
|
||||
|
||||
var release = subject.Release;
|
||||
var release = subject.Release;
|
||||
|
||||
if (release.DownloadProtocol == DownloadProtocol.Torrent)
|
||||
{
|
||||
@@ -92,7 +92,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
// Only based on title because a release with the same title on another indexer/released at
|
||||
// a different time very likely has the exact same content and we don't need to also try it.
|
||||
|
||||
if (release.Title.Equals(lastGrabbed.SourceTitle, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
_logger.Debug("Has same release name as a grabbed and imported release");
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Music;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Profiles.Releases;
|
||||
using NzbDrone.Common.Extensions;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
@@ -19,7 +19,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
private readonly Logger _logger;
|
||||
private readonly ICached<bool> _missingFilesCache;
|
||||
private readonly IPreferredWordService _preferredWordServiceCalculator;
|
||||
|
||||
|
||||
public CutoffSpecification(UpgradableSpecification upgradableSpecification,
|
||||
Logger logger,
|
||||
ICacheManager cacheManager,
|
||||
@@ -44,8 +44,9 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
foreach (var album in subject.Albums)
|
||||
{
|
||||
var tracksMissing = _missingFilesCache.Get(album.Id.ToString(), () => _trackService.TracksWithoutFiles(album.Id).Any(),
|
||||
TimeSpan.FromSeconds(30));
|
||||
var tracksMissing = _missingFilesCache.Get(album.Id.ToString(),
|
||||
() => _trackService.TracksWithoutFiles(album.Id).Any(),
|
||||
TimeSpan.FromSeconds(30));
|
||||
var trackFiles = _mediaFileService.GetFilesByAlbum(album.Id);
|
||||
|
||||
if (!tracksMissing && trackFiles.Any())
|
||||
@@ -68,7 +69,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
return Decision.Reject("Existing files meets cutoff: {0}", qualityCutoff);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using System.Linq;
|
||||
using NzbDrone.Common.Extensions;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
|
||||
@@ -50,9 +50,12 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
var releaseDate = subject.Albums.First().ReleaseDate;
|
||||
|
||||
if (releaseDate == null) return Decision.Accept();
|
||||
if (releaseDate == null)
|
||||
{
|
||||
return Decision.Accept();
|
||||
}
|
||||
|
||||
var isEarly = (releaseDate.Value > subject.Release.PublishDate.AddDays(indexerSettings.EarlyReleaseLimit.Value));
|
||||
var isEarly = releaseDate.Value > subject.Release.PublishDate.AddDays(indexerSettings.EarlyReleaseLimit.Value);
|
||||
|
||||
if (isEarly)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
return Decision.Accept();
|
||||
}
|
||||
|
||||
|
||||
_logger.Debug("Checking if report meets minimum age requirements. {0}", ageRounded);
|
||||
|
||||
if (age < minimumAge)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using NLog;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
@@ -19,14 +18,13 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
public Decision IsSatisfiedBy(RemoteAlbum subject, SearchCriteriaBase searchCriteria)
|
||||
{
|
||||
if (subject.Release.Title.ToLower().Contains("sample") && subject.Release.Size < 20.Megabytes())
|
||||
{
|
||||
_logger.Debug("Sample release, rejecting.");
|
||||
return Decision.Reject("Sample");
|
||||
}
|
||||
if (subject.Release.Title.ToLower().Contains("sample") && subject.Release.Size < 20.Megabytes())
|
||||
{
|
||||
_logger.Debug("Sample release, rejecting.");
|
||||
return Decision.Reject("Sample");
|
||||
}
|
||||
|
||||
return Decision.Accept();
|
||||
return Decision.Accept();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using NLog;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
|
||||
@@ -38,7 +38,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
q.RemoteAlbum.Albums.Select(e => e.Id).Intersect(subject.Albums.Select(e => e.Id)).Any())
|
||||
.ToList();
|
||||
|
||||
|
||||
foreach (var queueItem in matchingAlbum)
|
||||
{
|
||||
var remoteAlbum = queueItem.RemoteAlbum;
|
||||
@@ -52,7 +51,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
queuedItemPreferredWordScore,
|
||||
subject.ParsedAlbumInfo.Quality,
|
||||
subject.PreferredWordScore))
|
||||
|
||||
{
|
||||
return Decision.Reject("Release in queue already meets cutoff: {0}", remoteAlbum.ParsedAlbumInfo.Quality);
|
||||
}
|
||||
@@ -79,7 +77,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
}
|
||||
|
||||
return Decision.Accept();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
return Decision.Accept();
|
||||
}
|
||||
|
||||
if (_cdContainerTypes.Contains(subject.Release.Container.ToLower()))
|
||||
{
|
||||
_logger.Debug("Release contains raw CD, rejecting.");
|
||||
return Decision.Reject("Raw CD release");
|
||||
}
|
||||
if (_cdContainerTypes.Contains(subject.Release.Container.ToLower()))
|
||||
{
|
||||
_logger.Debug("Release contains raw CD, rejecting.");
|
||||
return Decision.Reject("Raw CD release");
|
||||
}
|
||||
|
||||
return Decision.Accept();
|
||||
}
|
||||
|
||||
@@ -58,7 +58,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Decision.Accept();
|
||||
|
||||
@@ -2,11 +2,11 @@ using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.Download.Pending;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Profiles.Delay;
|
||||
using NzbDrone.Core.Qualities;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Profiles.Releases;
|
||||
using NzbDrone.Core.Qualities;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
|
||||
{
|
||||
|
||||
+1
-3
@@ -1,4 +1,3 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Disk;
|
||||
@@ -6,8 +5,8 @@ using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Music;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
|
||||
{
|
||||
@@ -51,7 +50,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
|
||||
.Where(v => IsTrackFileMissing(subject.Artist, v))
|
||||
.ToArray();
|
||||
|
||||
|
||||
if (missingTrackFiles.Any())
|
||||
{
|
||||
foreach (var missingTrackFile in missingTrackFiles)
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Qualities;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.Music;
|
||||
|
||||
|
||||
@@ -2,8 +2,6 @@ using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Music;
|
||||
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications.Search
|
||||
{
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
@@ -30,7 +29,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.Search
|
||||
{
|
||||
return Decision.Accept();
|
||||
}
|
||||
|
||||
|
||||
if (Parser.Parser.CleanArtistName(singleAlbumSpec.AlbumTitle) != Parser.Parser.CleanArtistName(remoteAlbum.ParsedAlbumInfo.AlbumTitle))
|
||||
{
|
||||
_logger.Debug("Album does not match searched album title, skipping.");
|
||||
|
||||
@@ -20,7 +20,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
public SpecificationPriority Priority => SpecificationPriority.Default;
|
||||
public RejectionType Type => RejectionType.Permanent;
|
||||
|
||||
|
||||
public Decision IsSatisfiedBy(RemoteAlbum remoteAlbum, SearchCriteriaBase searchCriteria)
|
||||
{
|
||||
var torrentInfo = remoteAlbum.Release as TorrentInfo;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.Profiles.Qualities;
|
||||
using NzbDrone.Core.Qualities;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
@@ -47,7 +47,8 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
}
|
||||
|
||||
// Not upgradable if new quality is equal to all current qualities
|
||||
if (totalCompare == 0) {
|
||||
if (totalCompare == 0)
|
||||
{
|
||||
return ProfileComparisonResult.Equal;
|
||||
}
|
||||
|
||||
@@ -71,7 +72,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
public bool IsUpgradable(QualityProfile qualityProfile, List<QualityModel> currentQualities, int currentScore, QualityModel newQuality, int newScore)
|
||||
{
|
||||
|
||||
var qualityUpgrade = IsQualityUpgradable(qualityProfile, currentQualities, newQuality);
|
||||
|
||||
if (qualityUpgrade == ProfileComparisonResult.Upgrade)
|
||||
@@ -154,7 +154,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
return CheckUpgradeAllowed(qualityProfile, isQualityUpgrade);
|
||||
}
|
||||
|
||||
private bool CheckUpgradeAllowed (QualityProfile qualityProfile, ProfileComparisonResult isQualityUpgrade)
|
||||
private bool CheckUpgradeAllowed(QualityProfile qualityProfile, ProfileComparisonResult isQualityUpgrade)
|
||||
{
|
||||
if (isQualityUpgrade == ProfileComparisonResult.Upgrade && !qualityProfile.UpgradeAllowed)
|
||||
{
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Music;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Core.Profiles.Releases;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
@@ -41,7 +40,8 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
foreach (var album in subject.Albums)
|
||||
{
|
||||
var tracksMissing = _missingFilesCache.Get(album.Id.ToString(), () => _trackService.TracksWithoutFiles(album.Id).Any(),
|
||||
var tracksMissing = _missingFilesCache.Get(album.Id.ToString(),
|
||||
() => _trackService.TracksWithoutFiles(album.Id).Any(),
|
||||
TimeSpan.FromSeconds(30));
|
||||
|
||||
var trackFiles = _mediaFileService.GetFilesByAlbum(album.Id);
|
||||
@@ -61,7 +61,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
return Decision.Reject("Existing files and the Quality profile does not allow upgrades");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Music;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Profiles.Releases;
|
||||
using NzbDrone.Common.Extensions;
|
||||
|
||||
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
{
|
||||
@@ -19,7 +19,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
private readonly IPreferredWordService _preferredWordServiceCalculator;
|
||||
private readonly Logger _logger;
|
||||
private readonly ICached<bool> _missingFilesCache;
|
||||
|
||||
|
||||
public UpgradeDiskSpecification(UpgradableSpecification qualityUpgradableSpecification,
|
||||
IMediaFileService mediaFileService,
|
||||
ITrackService trackService,
|
||||
@@ -40,10 +40,10 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
|
||||
public virtual Decision IsSatisfiedBy(RemoteAlbum subject, SearchCriteriaBase searchCriteria)
|
||||
{
|
||||
|
||||
foreach (var album in subject.Albums)
|
||||
{
|
||||
var tracksMissing = _missingFilesCache.Get(album.Id.ToString(), () => _trackService.TracksWithoutFiles(album.Id).Any(),
|
||||
var tracksMissing = _missingFilesCache.Get(album.Id.ToString(),
|
||||
() => _trackService.TracksWithoutFiles(album.Id).Any(),
|
||||
TimeSpan.FromSeconds(30));
|
||||
var trackFiles = _mediaFileService.GetFilesByAlbum(album.Id);
|
||||
|
||||
@@ -60,7 +60,6 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
return Decision.Reject("Existing files on disk is of equal or higher preference: {0}", currentQualities.ConcatToString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Decision.Accept();
|
||||
|
||||
Reference in New Issue
Block a user