diff --git a/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs
index e7ee1255e..14446ef52 100644
--- a/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs
+++ b/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs
@@ -52,8 +52,6 @@ namespace NzbDrone.Core.Test.IndexerTests.KickassTorrentsTests
torrentInfo.Size.Should().Be(1205364736);
torrentInfo.InfoHash.Should().Be("208C4F7866612CC88BFEBC7C496FA72C2368D1C0");
torrentInfo.MagnetUrl.Should().Be("magnet:?xt=urn:btih:208C4F7866612CC88BFEBC7C496FA72C2368D1C0&dn=doctor+stranger+e03+140512+hdtv+h264+720p+ipop+avi+ctrg&tr=udp%3A%2F%2Fopen.demonii.com%3A1337%2Fannounce");
- torrentInfo.Peers.Should().Be(311);
- torrentInfo.Seeders.Should().Be(206);
}
[Test]
@@ -92,6 +90,7 @@ namespace NzbDrone.Core.Test.IndexerTests.KickassTorrentsTests
// Atm, Kickass supplies 0 as seeders and leechers on the rss feed (but not the site), so set it to null if there aren't any peers.
var recentFeed = ReadAllText(@"Files/Indexers/KickassTorrents/KickassTorrents.xml");
+ recentFeed = recentFeed.Replace("Mon, 12 May 2014 16:16:49 +0000", string.Format("{0:R}", DateTime.UtcNow));
recentFeed = Regex.Replace(recentFeed, @"(seeds|peers)\>\d*", "$1>0");
Mocker.GetMock()
@@ -115,6 +114,7 @@ namespace NzbDrone.Core.Test.IndexerTests.KickassTorrentsTests
// Atm, Kickass supplies 0 as seeders and leechers on the rss feed (but not the site), so set it to null if there aren't any peers.
var recentFeed = ReadAllText(@"Files/Indexers/KickassTorrents/KickassTorrents.xml");
+ recentFeed = recentFeed.Replace("Mon, 12 May 2014 16:16:49 +0000", string.Format("{0:R}", DateTime.UtcNow));
recentFeed = Regex.Replace(recentFeed, @"(seeds)\>\d*", "$1>0");
Mocker.GetMock()
@@ -128,8 +128,31 @@ namespace NzbDrone.Core.Test.IndexerTests.KickassTorrentsTests
var torrentInfo = (TorrentInfo)releases.First();
- torrentInfo.Peers.Should().HaveValue();
- torrentInfo.Seeders.Should().HaveValue();
+ torrentInfo.Peers.Should().Be(311);
+ torrentInfo.Seeders.Should().Be(0);
+ }
+
+ [Test]
+ public void should_not_set_seeders_to_null_if_older_than_12_hours()
+ {
+ // Atm, Kickass supplies 0 as seeders and leechers on the rss feed (but not the site), so set it to null if there aren't any peers.
+ var recentFeed = ReadAllText(@"Files/Indexers/KickassTorrents/KickassTorrents.xml");
+
+ recentFeed = Regex.Replace(recentFeed, @"(seeds|peers)\>\d*", "$1>0");
+
+ Mocker.GetMock()
+ .Setup(o => o.Execute(It.Is(v => v.Method == HttpMethod.GET)))
+ .Returns(r => new HttpResponse(r, new HttpHeader(), recentFeed));
+
+ var releases = Subject.FetchRecent();
+
+ releases.Should().HaveCount(5);
+ releases.First().Should().BeOfType();
+
+ var torrentInfo = (TorrentInfo)releases.First();
+
+ torrentInfo.Peers.Should().Be(0);
+ torrentInfo.Seeders.Should().Be(0);
}
}
}
diff --git a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs b/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs
index ef3f2744f..7e9e58235 100644
--- a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs
+++ b/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs
@@ -1,3 +1,4 @@
+using System;
using System.Linq;
using System.Xml.Linq;
using NzbDrone.Common.Extensions;
@@ -28,9 +29,10 @@ namespace NzbDrone.Core.Indexers.KickassTorrents
return null;
}
- // Atm, Kickass supplies 0 as seeders and leechers on the rss feed (but not the site), so set it to null if there aren't any peers.
+ // Atm, Kickass supplies 0 as seeders and leechers on the rss feed for recent releases, so set it to null if there aren't any peers.
+ // But only for releases younger than 12h (the real number seems to be close to 14h, but it depends on a number of factors).
var torrentInfo = releaseInfo as TorrentInfo;
- if (torrentInfo.Peers.HasValue && torrentInfo.Peers.Value == 0)
+ if (torrentInfo.Peers.HasValue && torrentInfo.Peers.Value == 0 && torrentInfo.PublishDate > DateTime.UtcNow.AddHours(-12))
{
torrentInfo.Seeders = null;
torrentInfo.Peers = null;