Skip to content

Commit

Permalink
Fixed: Delays use minutes not hours
Browse files Browse the repository at this point in the history
  • Loading branch information
markus101 committed Dec 10, 2014
1 parent b4c6284 commit a5dd0cc
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
1 change: 1 addition & 0 deletions src/NzbDrone.Api/Indexers/ReleaseResource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public class ReleaseResource : RestResource
public Int32 QualityWeight { get; set; }
public Int32 Age { get; set; }
public Double AgeHours { get; set; }
public Double AgeMinutes { get; set; }
public Int64 Size { get; set; }
public String Indexer { get; set; }
public String ReleaseGroup { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public void should_be_true_when_release_is_older_than_delay()
_remoteEpisode.ParsedEpisodeInfo.Quality = new QualityModel(Quality.HDTV720p);
_remoteEpisode.Release.PublishDate = DateTime.UtcNow.AddHours(-10);

_delayProfile.UsenetDelay = 1;
_delayProfile.UsenetDelay = 60;

Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeTrue();
}
Expand All @@ -125,7 +125,7 @@ public void should_be_false_when_release_is_younger_than_delay()
_remoteEpisode.ParsedEpisodeInfo.Quality = new QualityModel(Quality.SDTV);
_remoteEpisode.Release.PublishDate = DateTime.UtcNow;

_delayProfile.UsenetDelay = 12;
_delayProfile.UsenetDelay = 720;

Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeFalse();
}
Expand All @@ -143,7 +143,7 @@ public void should_be_true_when_release_is_a_proper_for_existing_episode()
.Setup(s => s.IsRevisionUpgrade(It.IsAny<QualityModel>(), It.IsAny<QualityModel>()))
.Returns(true);

_delayProfile.UsenetDelay = 12;
_delayProfile.UsenetDelay = 720;

Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeTrue();
}
Expand All @@ -161,7 +161,7 @@ public void should_be_true_when_release_is_a_real_for_existing_episode()
.Setup(s => s.IsRevisionUpgrade(It.IsAny<QualityModel>(), It.IsAny<QualityModel>()))
.Returns(true);

_delayProfile.UsenetDelay = 12;
_delayProfile.UsenetDelay = 720;

Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeTrue();
}
Expand All @@ -174,7 +174,7 @@ public void should_be_false_when_release_is_proper_for_existing_episode_of_diffe

GivenExistingFile(new QualityModel(Quality.SDTV));

_delayProfile.UsenetDelay = 12;
_delayProfile.UsenetDelay = 720;

Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeFalse();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,14 @@ public virtual Decision IsSatisfiedBy(RemoteEpisode subject, SearchCriteriaBase

var oldest = _pendingReleaseService.OldestPendingRelease(subject.Series.Id, episodeIds);

if (oldest != null && oldest.Release.AgeHours > delay)
if (oldest != null && oldest.Release.AgeMinutes > delay)
{
return Decision.Accept();
}

if (subject.Release.AgeHours < delay)
if (subject.Release.AgeMinutes < delay)
{
_logger.Debug("Waiting for better quality release, There is a {0} hour delay on {1}", delay, subject.Release.DownloadProtocol);
_logger.Debug("Waiting for better quality release, There is a {0} minute delay on {1}", delay, subject.Release.DownloadProtocol);
return Decision.Reject("Waiting for better quality release");
}

Expand Down
12 changes: 12 additions & 0 deletions src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,18 @@ public Double AgeHours
private set { }
}

public Double AgeMinutes
{
get
{
return DateTime.UtcNow.Subtract(PublishDate).TotalMinutes;
}

//This prevents manually downloading a release from blowing up in mono
//TODO: Is there a better way?
private set { }
}

public override string ToString()
{
return String.Format("[{0}] {1} [{2}]", PublishDate, Title, Size);
Expand Down

0 comments on commit a5dd0cc

Please sign in to comment.