diff --git a/src/NzbDrone.Core.Test/Files/Indexers/KickassTorrents/KickassTorrents.xml b/src/NzbDrone.Core.Test/Files/Indexers/KickassTorrents/KickassTorrents.xml
deleted file mode 100644
index c922c55ee..000000000
--- a/src/NzbDrone.Core.Test/Files/Indexers/KickassTorrents/KickassTorrents.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- tv torrents RSS feed - KickassTorrents
- http://kickass.to/
- tv torrents RSS feed
- -
- Doctor Stranger.E03.140512.HDTV.H264.720p-iPOP.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/doctor-stranger-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100648.html
- http://kickass.to/doctor-stranger-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100648.html
- Mon, 12 May 2014 16:16:49 +0000
- 1205364736
- 208C4F7866612CC88BFEBC7C496FA72C2368D1C0
-
- 206
- 311
- 1
- doctor.stranger.e03.140512.hdtv.h264.720p.ipop.avi.ctrg.torrent
-
-
- -
- Triangle.E03.140512.HDTV.XViD-iPOP.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/triangle-e03-140512-hdtv-xvid-ipop-avi-ctrg-t9100647.html
- http://kickass.to/triangle-e03-140512-hdtv-xvid-ipop-avi-ctrg-t9100647.html
- Mon, 12 May 2014 16:16:31 +0000
- 677543936
- BF22A53C9889A7D325F2A3D904E566B7DF4074EB
-
- 242
- 374
- 1
- triangle.e03.140512.hdtv.xvid.ipop.avi.ctrg.torrent
-
-
- -
- Triangle.E03.140512.HDTV.H264.720p-iPOP.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/triangle-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100646.html
- http://kickass.to/triangle-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100646.html
- Mon, 12 May 2014 16:16:10 +0000
- 1196869632
- 8427BFB8884B8228364EBB9B3EA7D8B77E03A7BC
-
- 177
- 268
- 1
- triangle.e03.140512.hdtv.h264.720p.ipop.avi.ctrg.torrent
-
-
- -
- Triangle.E03.140512.HDTV.X264.720p-BarosG_.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/triangle-e03-140512-hdtv-x264-720p-barosg-avi-ctrg-t9100644.html
- http://kickass.to/triangle-e03-140512-hdtv-x264-720p-barosg-avi-ctrg-t9100644.html
- Mon, 12 May 2014 16:15:52 +0000
- 1418906266
- 5556B773893DB55287ECEC581E850B853163DB11
-
- 522
- 785
- 1
- triangle.e03.140512.hdtv.x264.720p.barosg.avi.ctrg.torrent
-
-
- -
- Battlestar Galactica 1978 Dvd3 e09 e10 e11 e12 [NL] [FR] [ENG] Sub
-
-
-
- TV
- http://kickass.to/user/hendriknl/
- http://kickass.to/battlestar-galactica-1978-dvd3-e09-e10-e11-e12-nl-fr-eng-sub-t9100642.html
- http://kickass.to/battlestar-galactica-1978-dvd3-e09-e10-e11-e12-nl-fr-eng-sub-t9100642.html
- Mon, 12 May 2014 16:15:46 +0000
- 4680841216
- 3D293CAFEDAC595F6E55F9C284DD76862FE254F6
-
- 2
- 5
- 0
- battlestar.galactica.1978.dvd3.e09.e10.e11.e12.nl.fr.eng.sub.torrent
-
-
-
-
\ No newline at end of file
diff --git a/src/NzbDrone.Core.Test/Files/Indexers/KickassTorrents/KickassTorrents_accents.xml b/src/NzbDrone.Core.Test/Files/Indexers/KickassTorrents/KickassTorrents_accents.xml
deleted file mode 100644
index 7deced5f1..000000000
--- a/src/NzbDrone.Core.Test/Files/Indexers/KickassTorrents/KickassTorrents_accents.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
- tv torrents RSS feed - KickassTorrents
- http://kickass.to/
- tv torrents RSS feed
- -
- Doctor Strangér.E03.140512.HDTV.H264.720p-iPOP.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/doctor-stranger-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100648.html
- http://kickass.to/doctor-stranger-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100648.html
- Mon, 12 May 2014 16:16:49 +0000
- 1205364736
- 208C4F7866612CC88BFEBC7C496FA72C2368D1C0
-
- 206
- 311
- 1
- doctor.stranger.e03.140512.hdtv.h264.720p.ipop.avi.ctrg.torrent
-
-
- -
- Triangle.E03.140512.HDTV.XViD-iPOP.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/triangle-e03-140512-hdtv-xvid-ipop-avi-ctrg-t9100647.html
- http://kickass.to/triangle-e03-140512-hdtv-xvid-ipop-avi-ctrg-t9100647.html
- Mon, 12 May 2014 16:16:31 +0000
- 677543936
- BF22A53C9889A7D325F2A3D904E566B7DF4074EB
-
- 242
- 374
- 1
- triangle.e03.140512.hdtv.xvid.ipop.avi.ctrg.torrent
-
-
- -
- Triangle.E03.140512.HDTV.H264.720p-iPOP.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/triangle-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100646.html
- http://kickass.to/triangle-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100646.html
- Mon, 12 May 2014 16:16:10 +0000
- 1196869632
- 8427BFB8884B8228364EBB9B3EA7D8B77E03A7BC
-
- 177
- 268
- 1
- triangle.e03.140512.hdtv.h264.720p.ipop.avi.ctrg.torrent
-
-
- -
- Triangle.E03.140512.HDTV.X264.720p-BarosG_.avi [CTRG]
- TV
- http://kickass.to/user/2NE1/
- http://kickass.to/triangle-e03-140512-hdtv-x264-720p-barosg-avi-ctrg-t9100644.html
- http://kickass.to/triangle-e03-140512-hdtv-x264-720p-barosg-avi-ctrg-t9100644.html
- Mon, 12 May 2014 16:15:52 +0000
- 1418906266
- 5556B773893DB55287ECEC581E850B853163DB11
-
- 522
- 785
- 1
- triangle.e03.140512.hdtv.x264.720p.barosg.avi.ctrg.torrent
-
-
- -
- Battlestar Galactica 1978 Dvd3 e09 e10 e11 e12 [NL] [FR] [ENG] Sub
-
-
-
- TV
- http://kickass.to/user/hendriknl/
- http://kickass.to/battlestar-galactica-1978-dvd3-e09-e10-e11-e12-nl-fr-eng-sub-t9100642.html
- http://kickass.to/battlestar-galactica-1978-dvd3-e09-e10-e11-e12-nl-fr-eng-sub-t9100642.html
- Mon, 12 May 2014 16:15:46 +0000
- 4680841216
- 3D293CAFEDAC595F6E55F9C284DD76862FE254F6
-
- 2
- 5
- 0
- battlestar.galactica.1978.dvd3.e09.e10.e11.e12.nl.fr.eng.sub.torrent
-
-
-
-
\ No newline at end of file
diff --git a/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs
index 2074e5cb2..0e2ac0894 100644
--- a/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs
+++ b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs
@@ -4,7 +4,6 @@ using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Indexers;
-using NzbDrone.Core.Indexers.KickassTorrents;
using NzbDrone.Core.Indexers.Nyaa;
using NzbDrone.Core.Indexers.Wombles;
using NzbDrone.Core.IndexerSearch.Definitions;
@@ -56,42 +55,6 @@ namespace NzbDrone.Core.Test.IndexerTests.IntegrationTests
ValidateResult(result);
}
- [Test]
- [ManualTest]
- [Explicit]
- public void kickass_fetch_recent()
- {
- var indexer = Mocker.Resolve();
-
- indexer.Definition = new IndexerDefinition
- {
- Name = "MyIndexer",
- Settings = new KickassTorrentsSettings()
- };
-
- var result = indexer.FetchRecent();
-
- ValidateTorrentResult(result, hasSize: true);
- }
-
- [Test]
- [ManualTest]
- [Explicit]
- public void kickass_search_single()
- {
- var indexer = Mocker.Resolve();
-
- indexer.Definition = new IndexerDefinition
- {
- Name = "MyIndexer",
- Settings = new KickassTorrentsSettings()
- };
-
- var result = indexer.Fetch(_singleSearchCriteria);
-
- ValidateTorrentResult(result, hasSize: true, hasMagnet: true);
- }
-
[Test]
public void nyaa_fetch_recent()
{
diff --git a/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs
deleted file mode 100644
index 8da5e572f..000000000
--- a/src/NzbDrone.Core.Test/IndexerTests/KickassTorrentsTests/KickassTorrentsFixture.cs
+++ /dev/null
@@ -1,173 +0,0 @@
-using Moq;
-using NUnit.Framework;
-using NzbDrone.Common.Http;
-using NzbDrone.Core.Indexers;
-using NzbDrone.Core.Indexers.KickassTorrents;
-using NzbDrone.Core.Parser.Model;
-using NzbDrone.Core.Test.Framework;
-using NzbDrone.Test.Common;
-using System;
-using System.Linq;
-using FluentAssertions;
-using System.Text.RegularExpressions;
-
-namespace NzbDrone.Core.Test.IndexerTests.KickassTorrentsTests
-{
- [TestFixture]
- public class KickassTorrentsFixture : CoreTest
- {
- [SetUp]
- public void Setup()
- {
- Subject.Definition = new IndexerDefinition()
- {
- Name = "Kickass Torrents",
- Settings = new KickassTorrentsSettings() { VerifiedOnly = false }
- };
- }
-
- [Test]
- public void should_parse_recent_feed_from_KickassTorrents()
- {
- var recentFeed = ReadAllText(@"Files/Indexers/KickassTorrents/KickassTorrents.xml");
-
- 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.Title.Should().Be("Doctor Stranger.E03.140512.HDTV.H264.720p-iPOP.avi [CTRG]");
- torrentInfo.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
- torrentInfo.DownloadUrl.Should().Be("http://torcache.net/torrent/208C4F7866612CC88BFEBC7C496FA72C2368D1C0.torrent?title=%5Bkickass.to%5Ddoctor.stranger.e03.140512.hdtv.h264.720p.ipop.avi.ctrg");
- torrentInfo.InfoUrl.Should().Be("http://kickass.to/doctor-stranger-e03-140512-hdtv-h264-720p-ipop-avi-ctrg-t9100648.html");
- torrentInfo.CommentUrl.Should().BeNullOrEmpty();
- torrentInfo.Indexer.Should().Be(Subject.Definition.Name);
- torrentInfo.PublishDate.Should().Be(DateTime.Parse("2014/05/12 16:16:49"));
- 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");
- }
-
- [Test]
- public void should_return_empty_list_on_404()
- {
- Mocker.GetMock()
- .Setup(o => o.Execute(It.Is(v => v.Method == HttpMethod.GET)))
- .Returns(r => new HttpResponse(r, new HttpHeader(), new byte[0], System.Net.HttpStatusCode.NotFound));
-
- var releases = Subject.FetchRecent();
-
- releases.Should().HaveCount(0);
-
- ExceptionVerification.IgnoreWarns();
- }
-
- [Test]
- public void should_not_return_unverified_releases_if_not_configured()
- {
- ((KickassTorrentsSettings) Subject.Definition.Settings).VerifiedOnly = true;
-
- var recentFeed = ReadAllText(@"Files/Indexers/KickassTorrents/KickassTorrents.xml");
-
- 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(4);
- }
-
- [Test]
- public void should_set_seeders_to_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.
- 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()
- .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().NotHaveValue();
- torrentInfo.Seeders.Should().NotHaveValue();
- }
-
- [Test]
- public void should_not_set_seeders_to_null_if_has_peers()
- {
- // 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()
- .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(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);
- }
-
-
- [Test]
- public void should_handle_xml_with_html_accents()
- {
- var recentFeed = ReadAllText(@"Files/Indexers/KickassTorrents/KickassTorrents_accents.xml");
-
- 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);
- }
- }
-}
diff --git a/src/NzbDrone.Core.Test/IndexerTests/TorrentRssIndexerTests/TorrentRssSettingsDetectorFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/TorrentRssIndexerTests/TorrentRssSettingsDetectorFixture.cs
index 546112dd6..ed26fd54e 100644
--- a/src/NzbDrone.Core.Test/IndexerTests/TorrentRssIndexerTests/TorrentRssSettingsDetectorFixture.cs
+++ b/src/NzbDrone.Core.Test/IndexerTests/TorrentRssIndexerTests/TorrentRssSettingsDetectorFixture.cs
@@ -215,7 +215,6 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
[TestCase("BitMeTv/BitMeTv.xml")]
[TestCase("Fanzub/fanzub.xml")]
- [TestCase("KickassTorrents/KickassTorrents.xml")]
[TestCase("IPTorrents/IPTorrents.xml")]
[TestCase("Newznab/newznab_nzb_su.xml")]
[TestCase("Nyaa/Nyaa.xml")]
diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
index 7a1b8fdeb..45b613b21 100644
--- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
+++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
@@ -262,7 +262,6 @@
-
@@ -436,9 +435,6 @@
Always
-
- Always
-
Always
@@ -545,10 +541,6 @@
Always
-
- Always
- Designer
-
Always
diff --git a/src/NzbDrone.Core/Datastore/Migration/104_remove_kickass.cs b/src/NzbDrone.Core/Datastore/Migration/104_remove_kickass.cs
new file mode 100644
index 000000000..c7f21fe38
--- /dev/null
+++ b/src/NzbDrone.Core/Datastore/Migration/104_remove_kickass.cs
@@ -0,0 +1,14 @@
+using FluentMigrator;
+using NzbDrone.Core.Datastore.Migration.Framework;
+
+namespace NzbDrone.Core.Datastore.Migration
+{
+ [Migration(104)]
+ public class remove_kickass : NzbDroneMigrationBase
+ {
+ protected override void MainDbUpgrade()
+ {
+ Execute.Sql("DELETE FROM Indexers WHERE Implementation = 'KickassTorrents';");
+ }
+ }
+}
diff --git a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrents.cs b/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrents.cs
deleted file mode 100644
index 328b7ddde..000000000
--- a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrents.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using NLog;
-using NzbDrone.Common.Http;
-using NzbDrone.Core.Configuration;
-using NzbDrone.Core.Parser;
-
-namespace NzbDrone.Core.Indexers.KickassTorrents
-{
- public class KickassTorrents : HttpIndexerBase
- {
- public override string Name => "Kickass Torrents";
-
- public override DownloadProtocol Protocol => DownloadProtocol.Torrent;
- public override int PageSize => 25;
-
- public KickassTorrents(IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger)
- : base(httpClient, indexerStatusService, configService, parsingService, logger)
- {
-
- }
-
- public override IIndexerRequestGenerator GetRequestGenerator()
- {
- return new KickassTorrentsRequestGenerator() { Settings = Settings, PageSize = PageSize };
- }
-
- public override IParseIndexerResponse GetParser()
- {
- return new KickassTorrentsRssParser() { Settings = Settings };
- }
- }
-}
\ No newline at end of file
diff --git a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRequestGenerator.cs b/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRequestGenerator.cs
deleted file mode 100644
index 228b3e607..000000000
--- a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRequestGenerator.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using NzbDrone.Common.Http;
-using NzbDrone.Core.IndexerSearch.Definitions;
-
-namespace NzbDrone.Core.Indexers.KickassTorrents
-{
- public class KickassTorrentsRequestGenerator : IIndexerRequestGenerator
- {
- public KickassTorrentsSettings Settings { get; set; }
-
- public int MaxPages { get; set; }
- public int PageSize { get; set; }
-
- public KickassTorrentsRequestGenerator()
- {
- MaxPages = 30;
- PageSize = 25;
- }
-
- public virtual IndexerPageableRequestChain GetRecentRequests()
- {
- var pageableRequests = new IndexerPageableRequestChain();
-
- pageableRequests.Add(GetPagedRequests(MaxPages, "tv"));
-
- return pageableRequests;
- }
-
- public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria)
- {
- var pageableRequests = new IndexerPageableRequestChain();
-
- foreach (var queryTitle in searchCriteria.QueryTitles)
- {
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- "category:tv",
- string.Format("season:{0}", searchCriteria.SeasonNumber),
- string.Format("episode:{0}", searchCriteria.EpisodeNumber)));
-
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- string.Format("S{0:00}E{1:00}", searchCriteria.SeasonNumber, searchCriteria.EpisodeNumber),
- "category:tv"));
- }
-
- return pageableRequests;
- }
-
- public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria)
- {
- var pageableRequests = new IndexerPageableRequestChain();
-
- foreach (var queryTitle in searchCriteria.QueryTitles)
- {
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- "category:tv",
- string.Format("season:{0}", searchCriteria.SeasonNumber)));
-
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- "category:tv",
- string.Format("S{0:00}", searchCriteria.SeasonNumber)));
-
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- "category:tv",
- string.Format("Season {0}", searchCriteria.SeasonNumber)));
- }
-
- return pageableRequests;
- }
-
- public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria)
- {
- var pageableRequests = new IndexerPageableRequestChain();
-
- foreach (var queryTitle in searchCriteria.QueryTitles)
- {
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- string.Format("{0:yyyy-MM-dd}", searchCriteria.AirDate),
- "category:tv"));
- }
-
- return pageableRequests;
- }
-
- public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria)
- {
- return new IndexerPageableRequestChain();
- }
-
- public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria)
- {
- var pageableRequests = new IndexerPageableRequestChain();
-
- foreach (var queryTitle in searchCriteria.EpisodeQueryTitles)
- {
- pageableRequests.Add(GetPagedRequests(MaxPages, "usearch",
- PrepareQuery(queryTitle),
- "category:tv"));
- }
-
- return pageableRequests;
- }
-
- private IEnumerable GetPagedRequests(int maxPages, string rssType, params string[] searchParameters)
- {
- string searchUrl = null;
-
- if (searchParameters.Any())
- {
- // Prevent adding a '/' if no search parameters are specified
- if (Settings.VerifiedOnly)
- {
- searchUrl = string.Format("/{0} verified:1", string.Join(" ", searchParameters));
- }
- else
- {
- searchUrl = string.Format("/{0}", string.Join(" ", searchParameters)).Trim();
- }
- }
-
- if (PageSize == 0)
- {
- var request = new IndexerRequest(string.Format("{0}/{1}{2}/?rss=1&field=time_add&sorder=desc", Settings.BaseUrl.TrimEnd('/'), rssType, searchUrl), HttpAccept.Rss);
- request.HttpRequest.SuppressHttpError = true;
-
- yield return request;
- }
- else
- {
- for (var page = 0; page < maxPages; page++)
- {
- var request = new IndexerRequest(string.Format("{0}/{1}{2}/{3}/?rss=1&field=time_add&sorder=desc", Settings.BaseUrl.TrimEnd('/'), rssType, searchUrl, page + 1), HttpAccept.Rss);
- request.HttpRequest.SuppressHttpError = true;
-
- yield return request;
- }
- }
- }
-
- private string PrepareQuery(string query)
- {
- return query.Replace('+', ' ');
- }
- }
-}
diff --git a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs b/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs
deleted file mode 100644
index 7e9e58235..000000000
--- a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsRssParser.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-using System.Linq;
-using System.Xml.Linq;
-using NzbDrone.Common.Extensions;
-using NzbDrone.Core.Parser.Model;
-
-namespace NzbDrone.Core.Indexers.KickassTorrents
-{
- public class KickassTorrentsRssParser : EzrssTorrentRssParser
- {
- public KickassTorrentsSettings Settings { get; set; }
-
- protected override bool PreProcess(IndexerResponse indexerResponse)
- {
- if (indexerResponse.HttpResponse.StatusCode == System.Net.HttpStatusCode.NotFound)
- {
- return false;
- }
-
- return base.PreProcess(indexerResponse);
- }
-
- protected override ReleaseInfo PostProcess(XElement item, ReleaseInfo releaseInfo)
- {
- var verified = item.FindDecendants("verified").SingleOrDefault();
-
- if (Settings != null && Settings.VerifiedOnly && (string)verified == "0")
- {
- return null;
- }
-
- // 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 && torrentInfo.PublishDate > DateTime.UtcNow.AddHours(-12))
- {
- torrentInfo.Seeders = null;
- torrentInfo.Peers = null;
- }
-
- return base.PostProcess(item, releaseInfo);
- }
- }
-}
\ No newline at end of file
diff --git a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsSettings.cs b/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsSettings.cs
deleted file mode 100644
index c795fb5bc..000000000
--- a/src/NzbDrone.Core/Indexers/KickassTorrents/KickassTorrentsSettings.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using FluentValidation;
-using NzbDrone.Core.Annotations;
-using NzbDrone.Core.ThingiProvider;
-using NzbDrone.Core.Validation;
-
-namespace NzbDrone.Core.Indexers.KickassTorrents
-{
- public class KickassTorrentsSettingsValidator : AbstractValidator
- {
- public KickassTorrentsSettingsValidator()
- {
- RuleFor(c => c.BaseUrl).ValidRootUrl();
- }
- }
-
- public class KickassTorrentsSettings : IProviderConfig
- {
- private static readonly KickassTorrentsSettingsValidator Validator = new KickassTorrentsSettingsValidator();
-
- public KickassTorrentsSettings()
- {
- BaseUrl = "";
- VerifiedOnly = true;
- }
-
- [FieldDefinition(0, Label = "Website URL", HelpText = "Please verify that the url you enter is a trustworthy site.")]
- public string BaseUrl { get; set; }
-
- [FieldDefinition(1, Label = "Verified Only", Type = FieldType.Checkbox, HelpText = "By setting this to No you will likely get more junk and unconfirmed releases, so use it with caution.")]
- public bool VerifiedOnly { get; set; }
-
- public NzbDroneValidationResult Validate()
- {
- return new NzbDroneValidationResult(Validator.Validate(this));
- }
- }
-}
\ No newline at end of file
diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj
index 520cb449b..b5495d37d 100644
--- a/src/NzbDrone.Core/NzbDrone.Core.csproj
+++ b/src/NzbDrone.Core/NzbDrone.Core.csproj
@@ -251,6 +251,7 @@
+
@@ -626,10 +627,6 @@
-
-
-
-