diff --git a/NzbDrone.Core.Test/IndexerProviderTest.cs b/NzbDrone.Core.Test/IndexerProviderTest.cs index 5fbc256ea..886bd4cdc 100644 --- a/NzbDrone.Core.Test/IndexerProviderTest.cs +++ b/NzbDrone.Core.Test/IndexerProviderTest.cs @@ -177,6 +177,10 @@ namespace NzbDrone.Core.Test get { return "Mocked Indexer"; } } + public override bool SupportsBacklog + { + get { return false; } + } protected override string NzbDownloadUrl(SyndicationItem item) { @@ -201,6 +205,11 @@ namespace NzbDrone.Core.Test get { return "All Urls"; } } + public override bool SupportsBacklog + { + get { return false; } + } + protected override string[] Urls { get { return new[] { "http://rss.nzbmatrix.com/rss.php?cat=TV" }; } @@ -229,6 +238,11 @@ namespace NzbDrone.Core.Test get { return "Custom parser"; } } + public override bool SupportsBacklog + { + get { return false; } + } + protected override string[] Urls { get { return new[] { "http://www.google.com" }; } diff --git a/NzbDrone.Core/Providers/EpisodeProvider.cs b/NzbDrone.Core/Providers/EpisodeProvider.cs index 0f1fed3af..1b22294bd 100644 --- a/NzbDrone.Core/Providers/EpisodeProvider.cs +++ b/NzbDrone.Core/Providers/EpisodeProvider.cs @@ -67,6 +67,13 @@ namespace NzbDrone.Core.Providers } + public virtual IList EpisodesWithoutFiles(bool includeSpecials) + { + if (includeSpecials) + return _repository.All().Where(e => e.EpisodeFileId == 0 && e.AirDate <= DateTime.Today).ToList(); + + return _repository.All().Where(e => e.EpisodeFileId == 0 && e.AirDate <= DateTime.Today && e.SeasonNumber > 0).ToList(); + } /// /// Comprehensive check on whether or not this episode is needed. @@ -87,6 +94,7 @@ namespace NzbDrone.Core.Providers //Todo: How do we want to handle this really? Episode could be released before information is on TheTvDB //(Parks and Rec did this a lot in the first season, from experience) //Keivan: Should automatically add the episode to db with minimal information. then update the description/title when available. + //Mark: Perhaps we should only add the epsiode if its the latest season, sometimes people name things completely wrong (duh!) episodeInfo = new Episode { SeriesId = parsedReport.SeriesId, diff --git a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs index 5c8107e49..97c20dea2 100644 --- a/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs +++ b/NzbDrone.Core/Providers/Indexer/IndexerProviderBase.cs @@ -40,6 +40,8 @@ namespace NzbDrone.Core.Providers.Indexer _indexerProvider = indexerProvider; _historyProvider = historyProvider; _sabProvider = sabProvider; + + //Todo: IEnumerable yields no results for some reason, yet yields results in other classes _externalNotificationProvider = externalNotificationProvider; _logger = LogManager.GetLogger(GetType().ToString()); } @@ -49,6 +51,11 @@ namespace NzbDrone.Core.Providers.Indexer /// public abstract string Name { get; } + /// + /// Gets a bool to determine if Backlog Searching is Supported + /// + public abstract bool SupportsBacklog { get; } + /// /// Gets the source URL for the feed /// diff --git a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs index 738446fa0..effe1bc89 100644 --- a/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NewzbinProvider.cs @@ -43,6 +43,10 @@ namespace NzbDrone.Core.Providers.Indexer get { return "Newzbin"; } } + public override bool SupportsBacklog + { + get { return false; } + } protected override string NzbDownloadUrl(SyndicationItem item) { diff --git a/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs index 25f95cc04..364a92797 100644 --- a/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NzbMatrixProvider.cs @@ -28,7 +28,7 @@ namespace NzbDrone.Core.Providers.Indexer return new[] { string.Format( - "http://rss.nzbmatrix.com/rss.php?page=download&username={0}&apikey={1}&subcat=6,41&english=1&scenename=1", + "http://rss.nzbmatrix.com/rss.php?page=download&username={0}&apikey={1}&subcat=6,41&english=1&scenename=1&num=50", _configProvider.NzbMatrixUsername, _configProvider.NzbMatrixApiKey) }; @@ -40,6 +40,11 @@ namespace NzbDrone.Core.Providers.Indexer get { return "NzbMatrix"; } } + public override bool SupportsBacklog + { + get { return true; } + } + protected override string NzbDownloadUrl(SyndicationItem item) { return item.Links[0].Uri.ToString(); diff --git a/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs index 5d55e7b53..a68fa0c31 100644 --- a/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NzbsOrgProvider.cs @@ -36,6 +36,11 @@ namespace NzbDrone.Core.Providers.Indexer get { return "Nzbs.org"; } } + public override bool SupportsBacklog + { + get { return false; } + } + protected override string NzbDownloadUrl(SyndicationItem item) { return item.Id; diff --git a/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs b/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs index b2d120cbe..070678c10 100644 --- a/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs +++ b/NzbDrone.Core/Providers/Indexer/NzbsRUsProvider.cs @@ -33,13 +33,17 @@ namespace NzbDrone.Core.Providers.Indexer }; } } - - + public override string Name { get { return "NzbsRUs"; } } + public override bool SupportsBacklog + { + get { return false; } + } + protected override string NzbDownloadUrl(SyndicationItem item) { return item.Links[0].Uri.ToString(); diff --git a/NzbDrone.Core/Repository/IndexerSetting.cs b/NzbDrone.Core/Repository/IndexerSetting.cs index 471552728..f39f282f1 100644 --- a/NzbDrone.Core/Repository/IndexerSetting.cs +++ b/NzbDrone.Core/Repository/IndexerSetting.cs @@ -13,5 +13,7 @@ namespace NzbDrone.Core.Repository public String IndexProviderType { get; set; } public String Name { get; set; } + + public Boolean SupportsBacklog { get; set; } } } \ No newline at end of file