diff --git a/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs b/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs index 0018be941..11d3d4d79 100644 --- a/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs +++ b/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs @@ -10,6 +10,7 @@ public abstract class SearchCriteriaBase private static readonly Regex BeginningThe = new Regex(@"^the\s", RegexOptions.IgnoreCase | RegexOptions.Compiled); public int SeriesId { get; set; } + public int SeriesTvRageId { get; set; } public string SceneTitle { get; set; } public string QueryTitle diff --git a/NzbDrone.Core/IndexerSearch/NzbSearchService.cs b/NzbDrone.Core/IndexerSearch/NzbSearchService.cs index 03502fc82..79b14d45e 100644 --- a/NzbDrone.Core/IndexerSearch/NzbSearchService.cs +++ b/NzbDrone.Core/IndexerSearch/NzbSearchService.cs @@ -59,7 +59,7 @@ public List EpisodeSearch(int episodeId) throw new InvalidOperationException("Daily episode is missing AirDate. Try to refresh series info."); } - return SearchDaily(episode.SeriesId, DateTime.ParseExact(episode.AirDate, Episode.AIR_DATE_FORMAT, CultureInfo.InvariantCulture)); + return SearchDaily(episode.SeriesId, episode.Series.TvRageId, DateTime.ParseExact(episode.AirDate, Episode.AIR_DATE_FORMAT, CultureInfo.InvariantCulture)); } return SearchSingle(series, episode); @@ -67,7 +67,7 @@ public List EpisodeSearch(int episodeId) private List SearchSingle(Series series, Episode episode) { - var searchSpec = Get(series.Id, episode.SeasonNumber); + var searchSpec = Get(series.Id, series.TvRageId, episode.SeasonNumber); if (series.UseSceneNumbering) { @@ -92,9 +92,9 @@ private List SearchSingle(Series series, Episode episode) return Dispatch(indexer => _feedFetcher.Fetch(indexer, searchSpec), searchSpec); } - private List SearchDaily(int seriesId, DateTime airDate) + private List SearchDaily(int seriesId, int rageTvId, DateTime airDate) { - var searchSpec = Get(seriesId); + var searchSpec = Get(seriesId, rageTvId); searchSpec.Airtime = airDate; return Dispatch(indexer => _feedFetcher.Fetch(indexer, searchSpec), searchSpec); @@ -128,13 +128,14 @@ private List PartialSeasonSearch(SeasonSearchCriteria search) return result; } - private TSpec Get(int seriesId, int seasonNumber = -1) where TSpec : SearchCriteriaBase, new() + private TSpec Get(int seriesId, int rageTvId, int seasonNumber = -1) where TSpec : SearchCriteriaBase, new() { var spec = new TSpec(); var series = _seriesService.GetSeries(seriesId); spec.SeriesId = seriesId; + spec.SeriesTvRageId = rageTvId; spec.SceneTitle = _sceneMapping.GetSceneName(series.TvdbId, seasonNumber); if (string.IsNullOrWhiteSpace(spec.SceneTitle)) diff --git a/NzbDrone.Core/Indexers/IIndexer.cs b/NzbDrone.Core/Indexers/IIndexer.cs index 2d95e490e..d43659eed 100644 --- a/NzbDrone.Core/Indexers/IIndexer.cs +++ b/NzbDrone.Core/Indexers/IIndexer.cs @@ -17,9 +17,9 @@ public interface IIndexer IParseFeed Parser { get; } - IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber); - IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date); - IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber); - IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard); + IEnumerable GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber); + IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date); + IEnumerable GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber); + IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard); } } \ No newline at end of file diff --git a/NzbDrone.Core/Indexers/IndexerBase.cs b/NzbDrone.Core/Indexers/IndexerBase.cs index 229c420dd..02a084670 100644 --- a/NzbDrone.Core/Indexers/IndexerBase.cs +++ b/NzbDrone.Core/Indexers/IndexerBase.cs @@ -34,10 +34,10 @@ public virtual IParseFeed Parser } public abstract IEnumerable RecentFeed { get; } - public abstract IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber); - public abstract IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date); - public abstract IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber); - public abstract IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard); + public abstract IEnumerable GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber); + public abstract IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date); + public abstract IEnumerable GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber); + public abstract IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard); } diff --git a/NzbDrone.Core/Indexers/IndexerFetchService.cs b/NzbDrone.Core/Indexers/IndexerFetchService.cs index 4d020002d..79aac3e3e 100644 --- a/NzbDrone.Core/Indexers/IndexerFetchService.cs +++ b/NzbDrone.Core/Indexers/IndexerFetchService.cs @@ -46,7 +46,7 @@ public IList Fetch(IIndexer indexer, SeasonSearchCriteria searchCrit { _logger.Debug("Searching for {0}", searchCriteria); - var searchUrls = indexer.GetSeasonSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeasonNumber); + var searchUrls = indexer.GetSeasonSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeriesTvRageId, searchCriteria.SeasonNumber); var result = Fetch(indexer, searchUrls); @@ -58,7 +58,7 @@ public IList Fetch(IIndexer indexer, SingleEpisodeSearchCriteria sea { _logger.Debug("Searching for {0}", searchCriteria); - var searchUrls = indexer.GetEpisodeSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeasonNumber, searchCriteria.EpisodeNumber); + var searchUrls = indexer.GetEpisodeSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeriesTvRageId, searchCriteria.SeasonNumber, searchCriteria.EpisodeNumber); var result = Fetch(indexer, searchUrls); @@ -71,7 +71,7 @@ public IList Fetch(IIndexer indexer, PartialSeasonSearchCriteria sea { _logger.Debug("Searching for {0}", searchCriteria); - var searchUrls = indexer.GetSeasonSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeasonNumber); + var searchUrls = indexer.GetSeasonSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeriesTvRageId, searchCriteria.SeasonNumber); var result = Fetch(indexer, searchUrls); @@ -83,7 +83,7 @@ public IList Fetch(IIndexer indexer, DailyEpisodeSearchCriteria sear { _logger.Debug("Searching for {0}", searchCriteria); - var searchUrls = indexer.GetDailyEpisodeSearchUrls(searchCriteria.QueryTitle, searchCriteria.Airtime); + var searchUrls = indexer.GetDailyEpisodeSearchUrls(searchCriteria.QueryTitle, searchCriteria.SeriesTvRageId, searchCriteria.Airtime); var result = Fetch(indexer, searchUrls); _logger.Info("Finished searching {0} on {1}. Found {2}", indexer.Name, searchCriteria, result.Count); diff --git a/NzbDrone.Core/Indexers/Newznab/Newznab.cs b/NzbDrone.Core/Indexers/Newznab/Newznab.cs index 2601a08a6..7bab09629 100644 --- a/NzbDrone.Core/Indexers/Newznab/Newznab.cs +++ b/NzbDrone.Core/Indexers/Newznab/Newznab.cs @@ -84,24 +84,24 @@ public override IEnumerable RecentFeed } } - public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) + public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber) { - return RecentFeed.Select(url => String.Format("{0}&limit=100&q={1}&season={2}&ep={3}", url, NewsnabifyTitle(seriesTitle), seasonNumber, episodeNumber)); + return RecentFeed.Select(url => String.Format("{0}&limit=100&rid={1}&season={2}&ep={3}", url, tvRageId, seasonNumber, episodeNumber)); } - public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) + public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date) { - return RecentFeed.Select(url => String.Format("{0}&limit=100&q={1}&season={2:yyyy}&ep={2:MM/dd}", url, NewsnabifyTitle(seriesTitle), date)).ToList(); + return RecentFeed.Select(url => String.Format("{0}&limit=100&rid={1}&season={2:yyyy}&ep={2:MM/dd}", url, tvRageId, date)).ToList(); } - public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber) + public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber) { - return RecentFeed.Select(url => String.Format("{0}&limit=100&q={1}&season={2}", url, NewsnabifyTitle(seriesTitle), seasonNumber)); + return RecentFeed.Select(url => String.Format("{0}&limit=100&rid={1}&season={2}", url, tvRageId, seasonNumber)); } - public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) + public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard) { - return RecentFeed.Select(url => String.Format("{0}&limit=100&q={1}+S{2:00}E{3}", url, NewsnabifyTitle(seriesTitle), seasonNumber, episodeWildcard)); + return RecentFeed.Select(url => String.Format("{0}&limit=100&rid={1}&season={2}&q=E{3}", url, tvRageId, seasonNumber, episodeWildcard)); } public override string Name diff --git a/NzbDrone.Core/Indexers/NzbClub/NzbClub.cs b/NzbDrone.Core/Indexers/NzbClub/NzbClub.cs index 7ce9022e2..c1ca60e59 100644 --- a/NzbDrone.Core/Indexers/NzbClub/NzbClub.cs +++ b/NzbDrone.Core/Indexers/NzbClub/NzbClub.cs @@ -35,7 +35,7 @@ public override IEnumerable RecentFeed } } - public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) + public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber) { var searchUrls = new List(); @@ -47,7 +47,7 @@ public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int return searchUrls; } - public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber) + public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber) { var searchUrls = new List(); @@ -59,7 +59,7 @@ public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int return searchUrls; } - public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) + public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date) { var searchUrls = new List(); @@ -71,7 +71,7 @@ public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle return searchUrls; } - public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) + public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard) { var searchUrls = new List(); diff --git a/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs b/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs index e756ee527..3b2814333 100644 --- a/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs +++ b/NzbDrone.Core/Indexers/Omgwtfnzbs/Omgwtfnzbs.cs @@ -28,7 +28,7 @@ public override IEnumerable RecentFeed } } - public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) + public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber) { var searchUrls = new List(); @@ -40,7 +40,7 @@ public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int return searchUrls; } - public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) + public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date) { var searchUrls = new List(); @@ -52,7 +52,7 @@ public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle return searchUrls; } - public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber) + public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber) { var searchUrls = new List(); @@ -64,7 +64,7 @@ public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int return searchUrls; } - public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) + public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard) { var searchUrls = new List(); diff --git a/NzbDrone.Core/Indexers/Wombles/Wombles.cs b/NzbDrone.Core/Indexers/Wombles/Wombles.cs index eca0b72f1..29a787088 100644 --- a/NzbDrone.Core/Indexers/Wombles/Wombles.cs +++ b/NzbDrone.Core/Indexers/Wombles/Wombles.cs @@ -23,22 +23,22 @@ public override IEnumerable RecentFeed get { yield return "http://nzb.isasecret.com/rss/?sec=TV&fr=false"; } } - public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) + public override IEnumerable GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber) { return new List(); } - public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber) + public override IEnumerable GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber) { return new List(); } - public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) + public override IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date) { return new List(); } - public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) + public override IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard) { return new List(); }