1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-17 15:02:34 +02:00

Merge pull request #25 from faush01/vnext

Use Tv Rage ID in Newznab API search requests
This commit is contained in:
Keivan Beigi 2013-08-06 08:18:22 -07:00
commit c744a64d4d
9 changed files with 39 additions and 37 deletions

View File

@ -10,6 +10,7 @@ public abstract class SearchCriteriaBase
private static readonly Regex BeginningThe = new Regex(@"^the\s", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex BeginningThe = new Regex(@"^the\s", RegexOptions.IgnoreCase | RegexOptions.Compiled);
public int SeriesId { get; set; } public int SeriesId { get; set; }
public int SeriesTvRageId { get; set; }
public string SceneTitle { get; set; } public string SceneTitle { get; set; }
public string QueryTitle public string QueryTitle

View File

@ -59,7 +59,7 @@ public List<DownloadDecision> EpisodeSearch(int episodeId)
throw new InvalidOperationException("Daily episode is missing AirDate. Try to refresh series info."); 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); return SearchSingle(series, episode);
@ -67,7 +67,7 @@ public List<DownloadDecision> EpisodeSearch(int episodeId)
private List<DownloadDecision> SearchSingle(Series series, Episode episode) private List<DownloadDecision> SearchSingle(Series series, Episode episode)
{ {
var searchSpec = Get<SingleEpisodeSearchCriteria>(series.Id, episode.SeasonNumber); var searchSpec = Get<SingleEpisodeSearchCriteria>(series.Id, series.TvRageId, episode.SeasonNumber);
if (series.UseSceneNumbering) if (series.UseSceneNumbering)
{ {
@ -92,9 +92,9 @@ private List<DownloadDecision> SearchSingle(Series series, Episode episode)
return Dispatch(indexer => _feedFetcher.Fetch(indexer, searchSpec), searchSpec); return Dispatch(indexer => _feedFetcher.Fetch(indexer, searchSpec), searchSpec);
} }
private List<DownloadDecision> SearchDaily(int seriesId, DateTime airDate) private List<DownloadDecision> SearchDaily(int seriesId, int rageTvId, DateTime airDate)
{ {
var searchSpec = Get<DailyEpisodeSearchCriteria>(seriesId); var searchSpec = Get<DailyEpisodeSearchCriteria>(seriesId, rageTvId);
searchSpec.Airtime = airDate; searchSpec.Airtime = airDate;
return Dispatch(indexer => _feedFetcher.Fetch(indexer, searchSpec), searchSpec); return Dispatch(indexer => _feedFetcher.Fetch(indexer, searchSpec), searchSpec);
@ -128,13 +128,14 @@ private List<DownloadDecision> PartialSeasonSearch(SeasonSearchCriteria search)
return result; return result;
} }
private TSpec Get<TSpec>(int seriesId, int seasonNumber = -1) where TSpec : SearchCriteriaBase, new() private TSpec Get<TSpec>(int seriesId, int rageTvId, int seasonNumber = -1) where TSpec : SearchCriteriaBase, new()
{ {
var spec = new TSpec(); var spec = new TSpec();
var series = _seriesService.GetSeries(seriesId); var series = _seriesService.GetSeries(seriesId);
spec.SeriesId = seriesId; spec.SeriesId = seriesId;
spec.SeriesTvRageId = rageTvId;
spec.SceneTitle = _sceneMapping.GetSceneName(series.TvdbId, seasonNumber); spec.SceneTitle = _sceneMapping.GetSceneName(series.TvdbId, seasonNumber);
if (string.IsNullOrWhiteSpace(spec.SceneTitle)) if (string.IsNullOrWhiteSpace(spec.SceneTitle))

View File

@ -17,9 +17,9 @@ public interface IIndexer
IParseFeed Parser { get; } IParseFeed Parser { get; }
IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber); IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber);
IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date); IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date);
IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int seasonNumber); IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber);
IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard); IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard);
} }
} }

View File

@ -34,10 +34,10 @@ public virtual IParseFeed Parser
} }
public abstract IEnumerable<string> RecentFeed { get; } public abstract IEnumerable<string> RecentFeed { get; }
public abstract IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber); public abstract IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber);
public abstract IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date); public abstract IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date);
public abstract IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int seasonNumber); public abstract IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber);
public abstract IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard); public abstract IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard);
} }

View File

@ -46,7 +46,7 @@ public IList<ReportInfo> Fetch(IIndexer indexer, SeasonSearchCriteria searchCrit
{ {
_logger.Debug("Searching for {0}", searchCriteria); _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); var result = Fetch(indexer, searchUrls);
@ -58,7 +58,7 @@ public IList<ReportInfo> Fetch(IIndexer indexer, SingleEpisodeSearchCriteria sea
{ {
_logger.Debug("Searching for {0}", searchCriteria); _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); var result = Fetch(indexer, searchUrls);
@ -71,7 +71,7 @@ public IList<ReportInfo> Fetch(IIndexer indexer, PartialSeasonSearchCriteria sea
{ {
_logger.Debug("Searching for {0}", searchCriteria); _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); var result = Fetch(indexer, searchUrls);
@ -83,7 +83,7 @@ public IList<ReportInfo> Fetch(IIndexer indexer, DailyEpisodeSearchCriteria sear
{ {
_logger.Debug("Searching for {0}", searchCriteria); _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); var result = Fetch(indexer, searchUrls);
_logger.Info("Finished searching {0} on {1}. Found {2}", indexer.Name, searchCriteria, result.Count); _logger.Info("Finished searching {0} on {1}. Found {2}", indexer.Name, searchCriteria, result.Count);

View File

@ -84,24 +84,24 @@ public override IEnumerable<string> RecentFeed
} }
} }
public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) public override IEnumerable<string> 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<string> GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) public override IEnumerable<string> 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<string> GetSeasonSearchUrls(string seriesTitle, int seasonNumber) public override IEnumerable<string> 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<string> GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) public override IEnumerable<string> 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 public override string Name

View File

@ -35,7 +35,7 @@ public override IEnumerable<string> RecentFeed
} }
} }
public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber)
{ {
var searchUrls = new List<string>(); var searchUrls = new List<string>();
@ -47,7 +47,7 @@ public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int
return searchUrls; return searchUrls;
} }
public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int seasonNumber) public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber)
{ {
var searchUrls = new List<string>(); var searchUrls = new List<string>();
@ -59,7 +59,7 @@ public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int
return searchUrls; return searchUrls;
} }
public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date)
{ {
var searchUrls = new List<String>(); var searchUrls = new List<String>();
@ -71,7 +71,7 @@ public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle
return searchUrls; return searchUrls;
} }
public override IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) public override IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard)
{ {
var searchUrls = new List<String>(); var searchUrls = new List<String>();

View File

@ -28,7 +28,7 @@ public override IEnumerable<string> RecentFeed
} }
} }
public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber)
{ {
var searchUrls = new List<string>(); var searchUrls = new List<string>();
@ -40,7 +40,7 @@ public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int
return searchUrls; return searchUrls;
} }
public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date)
{ {
var searchUrls = new List<String>(); var searchUrls = new List<String>();
@ -52,7 +52,7 @@ public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle
return searchUrls; return searchUrls;
} }
public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int seasonNumber) public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber)
{ {
var searchUrls = new List<String>(); var searchUrls = new List<String>();
@ -64,7 +64,7 @@ public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int
return searchUrls; return searchUrls;
} }
public override IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) public override IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard)
{ {
var searchUrls = new List<String>(); var searchUrls = new List<String>();

View File

@ -23,22 +23,22 @@ public override IEnumerable<string> RecentFeed
get { yield return "http://nzb.isasecret.com/rss/?sec=TV&fr=false"; } get { yield return "http://nzb.isasecret.com/rss/?sec=TV&fr=false"; }
} }
public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber) public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber)
{ {
return new List<string>(); return new List<string>();
} }
public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int seasonNumber) public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber)
{ {
return new List<string>(); return new List<string>();
} }
public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date) public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date)
{ {
return new List<string>(); return new List<string>();
} }
public override IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard) public override IEnumerable<string> GetPartialSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeWildcard)
{ {
return new List<string>(); return new List<string>();
} }