Remove FetchRecent, Pass Cats back on Newznab Search

pull/6/head
Qstick 4 years ago
parent 6100adc515
commit 710b4f5ec6

@ -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; }

Loading…
Cancel
Save