mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
Remove FetchRecent, Pass Cats back on Newznab Search
This commit is contained in:
@@ -6,6 +6,7 @@ using NUnit.Framework;
|
|||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.FileList;
|
using NzbDrone.Core.Indexers.FileList;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(4);
|
releases.Should().HaveCount(4);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
|
@@ -37,7 +37,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void should_use_categories_for_feed()
|
public void should_use_categories_for_feed()
|
||||||
{
|
{
|
||||||
var results = Subject.GetRecentRequests();
|
var results = Subject.GetSearchRequests(new MovieSearchCriteria());
|
||||||
|
|
||||||
results.GetAllTiers().Should().HaveCount(1);
|
results.GetAllTiers().Should().HaveCount(1);
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
@@ -8,6 +8,7 @@ using NzbDrone.Common.Http;
|
|||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.HDBits;
|
using NzbDrone.Core.Indexers.HDBits;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
@@ -37,7 +38,7 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.POST)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.POST)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), responseJson));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), responseJson));
|
||||||
|
|
||||||
var torrents = Subject.FetchRecent();
|
var torrents = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
torrents.Should().HaveCount(2);
|
torrents.Should().HaveCount(2);
|
||||||
torrents.First().Should().BeOfType<HDBitsInfo>();
|
torrents.First().Should().BeOfType<HDBitsInfo>();
|
||||||
@@ -66,7 +67,7 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
|
|||||||
.Setup(v => v.Execute(It.IsAny<HttpRequest>()))
|
.Setup(v => v.Execute(It.IsAny<HttpRequest>()))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), Encoding.UTF8.GetBytes(responseJson)));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), Encoding.UTF8.GetBytes(responseJson)));
|
||||||
|
|
||||||
var torrents = Subject.FetchRecent();
|
var torrents = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
torrents.Should().BeEmpty();
|
torrents.Should().BeEmpty();
|
||||||
|
|
||||||
|
@@ -6,6 +6,7 @@ using NUnit.Framework;
|
|||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.IPTorrents;
|
using NzbDrone.Core.Indexers.IPTorrents;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ namespace NzbDrone.Core.Test.IndexerTests.IPTorrentsTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
|
@@ -6,6 +6,7 @@ using NUnit.Framework;
|
|||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.Newznab;
|
using NzbDrone.Core.Indexers.Newznab;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
|
namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
|
||||||
@@ -43,7 +44,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(100);
|
releases.Should().HaveCount(100);
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
@@ -6,6 +6,7 @@ using NUnit.Framework;
|
|||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.Nyaa;
|
using NzbDrone.Core.Indexers.Nyaa;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NyaaTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(4);
|
releases.Should().HaveCount(4);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
@@ -6,6 +6,7 @@ using NzbDrone.Common.Http;
|
|||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.PassThePopcorn;
|
using NzbDrone.Core.Indexers.PassThePopcorn;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
@@ -41,7 +42,7 @@ namespace NzbDrone.Core.Test.IndexerTests.PTPTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader { ContentType = HttpAccept.Json.Value }, responseJson));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader { ContentType = HttpAccept.Json.Value }, responseJson));
|
||||||
|
|
||||||
var torrents = Subject.FetchRecent();
|
var torrents = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
torrents.Should().HaveCount(293);
|
torrents.Should().HaveCount(293);
|
||||||
torrents.First().Should().BeOfType<PassThePopcornInfo>();
|
torrents.First().Should().BeOfType<PassThePopcornInfo>();
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
@@ -6,6 +6,7 @@ using NUnit.Framework;
|
|||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.Rarbg;
|
using NzbDrone.Core.Indexers.Rarbg;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
@@ -38,7 +39,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RarbgTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(4);
|
releases.Should().HaveCount(4);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -65,7 +66,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RarbgTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 20, error: \"some message\" }"));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 20, error: \"some message\" }"));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(0);
|
releases.Should().HaveCount(0);
|
||||||
}
|
}
|
||||||
@@ -77,7 +78,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RarbgTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 25, error: \"some message\" }"));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 25, error: \"some message\" }"));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(0);
|
releases.Should().HaveCount(0);
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
@@ -6,6 +6,7 @@ using NUnit.Framework;
|
|||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.TorrentRss;
|
using NzbDrone.Core.Indexers.TorrentRss;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
@@ -44,7 +45,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/ImmortalSeed.xml");
|
GivenRecentFeedResponse("TorrentRss/ImmortalSeed.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(50);
|
releases.Should().HaveCount(50);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -70,7 +71,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/Ezrss.xml");
|
GivenRecentFeedResponse("TorrentRss/Ezrss.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(3);
|
releases.Should().HaveCount(3);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -98,7 +99,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
|
|
||||||
GivenRecentFeedResponse("TorrentRss/ShowRSS.info.xml");
|
GivenRecentFeedResponse("TorrentRss/ShowRSS.info.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -126,7 +127,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
|
|
||||||
GivenRecentFeedResponse("TorrentRss/Doki.xml");
|
GivenRecentFeedResponse("TorrentRss/Doki.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -152,7 +153,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/ExtraTorrents.xml");
|
GivenRecentFeedResponse("TorrentRss/ExtraTorrents.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -178,7 +179,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/LimeTorrents.xml");
|
GivenRecentFeedResponse("TorrentRss/LimeTorrents.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -204,7 +205,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml");
|
GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(2);
|
releases.Should().HaveCount(2);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -230,7 +231,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml");
|
GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(2);
|
releases.Should().HaveCount(2);
|
||||||
releases.Last().Should().BeOfType<TorrentInfo>();
|
releases.Last().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -247,7 +248,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/AlphaRatio.xml");
|
GivenRecentFeedResponse("TorrentRss/AlphaRatio.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(2);
|
releases.Should().HaveCount(2);
|
||||||
releases.Last().Should().BeOfType<TorrentInfo>();
|
releases.Last().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -265,7 +266,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
Subject.Definition.Settings.As<TorrentRssIndexerSettings>().AllowZeroSize = true;
|
Subject.Definition.Settings.As<TorrentRssIndexerSettings>().AllowZeroSize = true;
|
||||||
GivenRecentFeedResponse("TorrentRss/EvolutionWorld.xml");
|
GivenRecentFeedResponse("TorrentRss/EvolutionWorld.xml");
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(2);
|
releases.Should().HaveCount(2);
|
||||||
releases.First().Should().BeOfType<TorrentInfo>();
|
releases.First().Should().BeOfType<TorrentInfo>();
|
||||||
@@ -291,7 +292,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
|
|||||||
{
|
{
|
||||||
GivenRecentFeedResponse("TorrentRss/invalid/TorrentDay_NoPubDate.xml");
|
GivenRecentFeedResponse("TorrentRss/invalid/TorrentDay_NoPubDate.xml");
|
||||||
|
|
||||||
Subject.FetchRecent().Should().BeEmpty();
|
Subject.Fetch(new MovieSearchCriteria()).Should().BeEmpty();
|
||||||
|
|
||||||
Mocker.GetMock<IIndexerStatusService>()
|
Mocker.GetMock<IIndexerStatusService>()
|
||||||
.Verify(v => v.RecordFailure(It.IsAny<int>(), TimeSpan.Zero), Times.Once());
|
.Verify(v => v.RecordFailure(It.IsAny<int>(), TimeSpan.Zero), Times.Once());
|
||||||
|
@@ -7,6 +7,7 @@ using NzbDrone.Common.Http;
|
|||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
using NzbDrone.Core.Indexers.Newznab;
|
using NzbDrone.Core.Indexers.Newznab;
|
||||||
using NzbDrone.Core.Indexers.Torznab;
|
using NzbDrone.Core.Indexers.Torznab;
|
||||||
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorznabTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
|
|
||||||
@@ -73,7 +74,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorznabTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(5);
|
releases.Should().HaveCount(5);
|
||||||
|
|
||||||
@@ -103,7 +104,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorznabTests
|
|||||||
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
|
||||||
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
|
||||||
|
|
||||||
var releases = Subject.FetchRecent();
|
var releases = Subject.Fetch(new MovieSearchCriteria());
|
||||||
|
|
||||||
releases.Should().HaveCount(2);
|
releases.Should().HaveCount(2);
|
||||||
|
|
||||||
|
@@ -87,7 +87,8 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||||||
.WithColumn("EscalationLevel").AsInt32().NotNullable()
|
.WithColumn("EscalationLevel").AsInt32().NotNullable()
|
||||||
.WithColumn("DisabledTill").AsDateTime().Nullable()
|
.WithColumn("DisabledTill").AsDateTime().Nullable()
|
||||||
.WithColumn("LastRssSyncReleaseInfo").AsString().Nullable()
|
.WithColumn("LastRssSyncReleaseInfo").AsString().Nullable()
|
||||||
.WithColumn("Cookies").AsString().WithDefaultValue("{}");
|
.WithColumn("Cookies").AsString().Nullable()
|
||||||
|
.WithColumn("CookiesExpirationDate").AsDateTime().Nullable();
|
||||||
|
|
||||||
Create.TableForModel("CustomFilters")
|
Create.TableForModel("CustomFilters")
|
||||||
.WithColumn("Type").AsString().NotNullable()
|
.WithColumn("Type").AsString().NotNullable()
|
||||||
|
@@ -72,6 +72,7 @@ namespace NzbDrone.Core.IndexerSearch
|
|||||||
new XElement("guid", r.Guid), // GUID and (Link or Magnet) are mandatory
|
new XElement("guid", r.Guid), // GUID and (Link or Magnet) are mandatory
|
||||||
new XElement("prowlarrindexer", new XAttribute("id", r.IndexerId), r.Indexer),
|
new XElement("prowlarrindexer", new XAttribute("id", r.IndexerId), r.Indexer),
|
||||||
r.PublishDate == DateTime.MinValue ? new XElement("pubDate", XmlDateFormat(DateTime.Now)) : new XElement("pubDate", XmlDateFormat(r.PublishDate)),
|
r.PublishDate == DateTime.MinValue ? new XElement("pubDate", XmlDateFormat(DateTime.Now)) : new XElement("pubDate", XmlDateFormat(r.PublishDate)),
|
||||||
|
r.Category == null ? null : from c in r.Category select new XElement("category", c),
|
||||||
new XElement("size", r.Size),
|
new XElement("size", r.Size),
|
||||||
new XElement(
|
new XElement(
|
||||||
"enclosure",
|
"enclosure",
|
||||||
|
@@ -186,13 +186,14 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
return variables;
|
return variables;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
protected ICollection<int> MapTrackerCatToNewznab(string input)
|
protected ICollection<int> MapTrackerCatToNewznab(string input)
|
||||||
{
|
{
|
||||||
if (input == null)
|
if (input == null)
|
||||||
|
{
|
||||||
return new List<int>();
|
return new List<int>();
|
||||||
|
}
|
||||||
|
|
||||||
var cats = categoryMapping.Where(m => m.TrackerCategory != null && m.TrackerCategory.ToLowerInvariant() == input.ToLowerInvariant()).Select(c => c.NewzNabCategory).ToList();
|
var cats = _definition.Caps.Categorymappings.Where(m => m.id != null && m.id.ToLowerInvariant() == input.ToLowerInvariant()).Select(c => TorznabCatType.GetCatByName(c.cat).Id).ToList();
|
||||||
|
|
||||||
// 1:1 category mapping
|
// 1:1 category mapping
|
||||||
try
|
try
|
||||||
@@ -206,12 +207,17 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
}
|
}
|
||||||
|
|
||||||
return cats;
|
return cats;
|
||||||
}*/
|
}
|
||||||
|
|
||||||
public List<string> MapTorznabCapsToTrackers(int[] searchCategories, bool mapChildrenCatsToParent = false)
|
public List<string> MapTorznabCapsToTrackers(int[] searchCategories, bool mapChildrenCatsToParent = false)
|
||||||
{
|
{
|
||||||
var queryCats = new List<string>();
|
var queryCats = new List<string>();
|
||||||
|
|
||||||
|
if (searchCategories == null)
|
||||||
|
{
|
||||||
|
return queryCats;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var searchCat in searchCategories)
|
foreach (var searchCat in searchCategories)
|
||||||
{
|
{
|
||||||
var match = TorznabCatType.AllCats.FirstOrDefault(c => c.Id == searchCat);
|
var match = TorznabCatType.AllCats.FirstOrDefault(c => c.Id == searchCat);
|
||||||
|
@@ -199,8 +199,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
value = release.Description;
|
value = release.Description;
|
||||||
break;
|
break;
|
||||||
case "category":
|
case "category":
|
||||||
// var cats = MapTrackerCatToNewznab(value);
|
var cats = MapTrackerCatToNewznab(value);
|
||||||
var cats = new List<int> { 2000 };
|
|
||||||
if (cats.Any())
|
if (cats.Any())
|
||||||
{
|
{
|
||||||
if (release.Category == null || fieldModifiers.Contains("noappend"))
|
if (release.Category == null || fieldModifiers.Contains("noappend"))
|
||||||
@@ -482,7 +481,8 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
MagnetUrl = x.MagnetUri?.ToString(),
|
MagnetUrl = x.MagnetUri?.ToString(),
|
||||||
InfoHash = x.InfoHash,
|
InfoHash = x.InfoHash,
|
||||||
Seeders = (int?)x.Seeders,
|
Seeders = (int?)x.Seeders,
|
||||||
Peers = (int?)x.Peers
|
Peers = (int?)x.Peers,
|
||||||
|
Category = x.Category
|
||||||
}));
|
}));
|
||||||
|
|
||||||
_logger.Debug($"Got {result.Count} releases");
|
_logger.Debug($"Got {result.Count} releases");
|
||||||
|
@@ -30,6 +30,13 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
|
|
||||||
var variables = GetBaseTemplateVariables();
|
var variables = GetBaseTemplateVariables();
|
||||||
|
|
||||||
|
variables[".Query.Type"] = null;
|
||||||
|
variables[".Query.Q"] = null;
|
||||||
|
variables[".Query.Categories"] = null;
|
||||||
|
variables[".Query.IMDBID"] = null;
|
||||||
|
variables[".Query.IMDBIDShort"] = null;
|
||||||
|
variables[".Query.TMDBID"] = null;
|
||||||
|
|
||||||
pageableRequests.Add(GetRequest(variables));
|
pageableRequests.Add(GetRequest(variables));
|
||||||
|
|
||||||
return pageableRequests;
|
return pageableRequests;
|
||||||
|
@@ -13,13 +13,6 @@ namespace NzbDrone.Core.Indexers.FileList
|
|||||||
public Func<IDictionary<string, string>> GetCookies { get; set; }
|
public Func<IDictionary<string, string>> GetCookies { get; set; }
|
||||||
public Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
|
public Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
|
||||||
|
|
||||||
public virtual IndexerPageableRequestChain GetRecentRequests()
|
|
||||||
{
|
|
||||||
var pageableRequests = new IndexerPageableRequestChain();
|
|
||||||
pageableRequests.Add(GetRequest("latest-torrents", ""));
|
|
||||||
return pageableRequests;
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
public virtual IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
||||||
{
|
{
|
||||||
var pageableRequests = new IndexerPageableRequestChain();
|
var pageableRequests = new IndexerPageableRequestChain();
|
||||||
@@ -28,11 +21,15 @@ namespace NzbDrone.Core.Indexers.FileList
|
|||||||
{
|
{
|
||||||
pageableRequests.Add(GetRequest("search-torrents", string.Format("&type=imdb&query={0}", searchCriteria.ImdbId)));
|
pageableRequests.Add(GetRequest("search-torrents", string.Format("&type=imdb&query={0}", searchCriteria.ImdbId)));
|
||||||
}
|
}
|
||||||
else
|
else if (searchCriteria.SearchTerm.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
var titleYearSearchQuery = string.Format("{0}", searchCriteria.SearchTerm);
|
var titleYearSearchQuery = string.Format("{0}", searchCriteria.SearchTerm);
|
||||||
pageableRequests.Add(GetRequest("search-torrents", string.Format("&type=name&query={0}", titleYearSearchQuery.Trim())));
|
pageableRequests.Add(GetRequest("search-torrents", string.Format("&type=name&query={0}", titleYearSearchQuery.Trim())));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pageableRequests.Add(GetRequest("latest-torrents", ""));
|
||||||
|
}
|
||||||
|
|
||||||
return pageableRequests;
|
return pageableRequests;
|
||||||
}
|
}
|
||||||
|
@@ -1,77 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Common.TPL;
|
|
||||||
using NzbDrone.Core.Parser.Model;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers
|
|
||||||
{
|
|
||||||
public interface IFetchAndParseRss
|
|
||||||
{
|
|
||||||
List<ReleaseInfo> Fetch();
|
|
||||||
}
|
|
||||||
|
|
||||||
public class FetchAndParseRssService : IFetchAndParseRss
|
|
||||||
{
|
|
||||||
private readonly IIndexerFactory _indexerFactory;
|
|
||||||
private readonly Logger _logger;
|
|
||||||
|
|
||||||
public FetchAndParseRssService(IIndexerFactory indexerFactory, Logger logger)
|
|
||||||
{
|
|
||||||
_indexerFactory = indexerFactory;
|
|
||||||
_logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ReleaseInfo> Fetch()
|
|
||||||
{
|
|
||||||
var result = new List<ReleaseInfo>();
|
|
||||||
|
|
||||||
var indexers = _indexerFactory.RssEnabled();
|
|
||||||
|
|
||||||
if (!indexers.Any())
|
|
||||||
{
|
|
||||||
_logger.Warn("No available indexers. check your configuration.");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger.Debug("Available indexers {0}", indexers.Count);
|
|
||||||
|
|
||||||
var taskList = new List<Task>();
|
|
||||||
var taskFactory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.None);
|
|
||||||
|
|
||||||
foreach (var indexer in indexers)
|
|
||||||
{
|
|
||||||
var indexerLocal = indexer;
|
|
||||||
|
|
||||||
var task = taskFactory.StartNew(() =>
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var indexerReports = indexerLocal.FetchRecent();
|
|
||||||
|
|
||||||
lock (result)
|
|
||||||
{
|
|
||||||
_logger.Debug("Found {0} from {1}", indexerReports.Count, indexer.Name);
|
|
||||||
|
|
||||||
result.AddRange(indexerReports);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
_logger.Error(e, "Error during RSS Sync");
|
|
||||||
}
|
|
||||||
}).LogExceptions();
|
|
||||||
|
|
||||||
taskList.Add(task);
|
|
||||||
}
|
|
||||||
|
|
||||||
Task.WaitAll(taskList.ToArray());
|
|
||||||
|
|
||||||
_logger.Debug("Found {0} reports", result.Count);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -39,16 +39,6 @@ namespace NzbDrone.Core.Indexers
|
|||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IList<ReleaseInfo> FetchRecent()
|
|
||||||
{
|
|
||||||
if (!SupportsRss)
|
|
||||||
{
|
|
||||||
return new List<ReleaseInfo>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return FetchReleases(g => g.GetRecentRequests(), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria)
|
public override IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria)
|
||||||
{
|
{
|
||||||
if (!SupportsSearch)
|
if (!SupportsSearch)
|
||||||
@@ -76,7 +66,7 @@ namespace NzbDrone.Core.Indexers
|
|||||||
return cookies;
|
return cookies;
|
||||||
};
|
};
|
||||||
|
|
||||||
var requests = searchCriteria == null ? generator.GetRecentRequests() : generator.GetSearchRequests(searchCriteria as MovieSearchCriteria);
|
var requests = generator.GetSearchRequests(searchCriteria as MovieSearchCriteria);
|
||||||
|
|
||||||
generator.CookiesUpdater = (cookies, expiration) =>
|
generator.CookiesUpdater = (cookies, expiration) =>
|
||||||
{
|
{
|
||||||
@@ -322,7 +312,7 @@ namespace NzbDrone.Core.Indexers
|
|||||||
_indexerStatusService.UpdateCookies(Definition.Id, cookies, expiration);
|
_indexerStatusService.UpdateCookies(Definition.Id, cookies, expiration);
|
||||||
};
|
};
|
||||||
var generator = GetRequestGenerator();
|
var generator = GetRequestGenerator();
|
||||||
var releases = FetchPage(generator.GetRecentRequests().GetAllTiers().First().First(), parser);
|
var releases = FetchPage(generator.GetSearchRequests(new MovieSearchCriteria()).GetAllTiers().First().First(), parser);
|
||||||
|
|
||||||
if (releases.Empty())
|
if (releases.Empty())
|
||||||
{
|
{
|
||||||
|
@@ -14,7 +14,6 @@ namespace NzbDrone.Core.Indexers
|
|||||||
DownloadProtocol Protocol { get; }
|
DownloadProtocol Protocol { get; }
|
||||||
IndexerPrivacy Privacy { get; }
|
IndexerPrivacy Privacy { get; }
|
||||||
|
|
||||||
IList<ReleaseInfo> FetchRecent();
|
|
||||||
IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria);
|
IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,6 @@ namespace NzbDrone.Core.Indexers
|
|||||||
{
|
{
|
||||||
public interface IIndexerRequestGenerator
|
public interface IIndexerRequestGenerator
|
||||||
{
|
{
|
||||||
IndexerPageableRequestChain GetRecentRequests();
|
|
||||||
IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria);
|
IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria);
|
||||||
Func<IDictionary<string, string>> GetCookies { get; set; }
|
Func<IDictionary<string, string>> GetCookies { get; set; }
|
||||||
Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
|
Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
|
||||||
|
@@ -65,7 +65,6 @@ namespace NzbDrone.Core.Indexers
|
|||||||
|
|
||||||
protected TSettings Settings => (TSettings)Definition.Settings;
|
protected TSettings Settings => (TSettings)Definition.Settings;
|
||||||
|
|
||||||
public abstract IList<ReleaseInfo> FetchRecent();
|
|
||||||
public abstract IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria);
|
public abstract IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria);
|
||||||
|
|
||||||
protected virtual IList<ReleaseInfo> CleanupReleases(IEnumerable<ReleaseInfo> releases)
|
protected virtual IList<ReleaseInfo> CleanupReleases(IEnumerable<ReleaseInfo> releases)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using NzbDrone.Core.Indexers;
|
using NzbDrone.Core.Indexers;
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ namespace NzbDrone.Core.Parser.Model
|
|||||||
public string Container { get; set; }
|
public string Container { get; set; }
|
||||||
public string Codec { get; set; }
|
public string Codec { get; set; }
|
||||||
public string Resolution { get; set; }
|
public string Resolution { get; set; }
|
||||||
|
public ICollection<int> Category { get; set; }
|
||||||
|
|
||||||
public IndexerFlags IndexerFlags { get; set; }
|
public IndexerFlags IndexerFlags { get; set; }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user