Interactive Season Search

New: Interactive Season Search
Fixed: BTN will no longer include season packs for individual episode searches
pull/2789/head
Mark McDowall 6 years ago committed by Taloth Saldono
parent 36b9c51163
commit 3b042707f5

@ -1,4 +1,4 @@
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using NzbDrone.Common.Http; using NzbDrone.Common.Http;
using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.IndexerSearch.Definitions;
@ -55,19 +55,6 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
pageableRequests.Add(GetPagedRequests(MaxPages, parameters)); pageableRequests.Add(GetPagedRequests(MaxPages, parameters));
} }
if (searchCriteria.UserInvokedSearch)
{
foreach (var seasonNumber in searchCriteria.Episodes.Select(v => v.SeasonNumber).Distinct())
{
parameters = parameters.Clone();
parameters.Category = "Season";
parameters.Name = string.Format("Season {0}%", seasonNumber);
pageableRequests.Add(GetPagedRequests(MaxPages, parameters));
}
}
} }
return pageableRequests; return pageableRequests;

@ -84,6 +84,11 @@ namespace Sonarr.Api.V3.Indexers
return GetEpisodeReleases(Request.Query.episodeId); return GetEpisodeReleases(Request.Query.episodeId);
} }
if (Request.Query.seriesId.HasValue && Request.Query.seasonNumber.HasValue)
{
return GetSeasonReleases(Request.Query.seriesId, Request.Query.seasonNumber);
}
return GetRss(); return GetRss();
} }
@ -98,7 +103,24 @@ namespace Sonarr.Api.V3.Indexers
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Episode search failed: " + ex.Message, ex); _logger.Error(ex, "Episode search failed: " + ex.Message);
}
return new List<ReleaseResource>();
}
private List<ReleaseResource> GetSeasonReleases(int seriesId, int seasonNumber)
{
try
{
var decisions = _nzbSearchService.SeasonSearch(seriesId, seasonNumber, false, true, true);
var prioritizedDecisions = _prioritizeDownloadDecision.PrioritizeDecisions(decisions);
return MapDecisions(prioritizedDecisions);
}
catch (Exception ex)
{
_logger.Error(ex, "Season search failed: " + ex.Message);
} }
return new List<ReleaseResource>(); return new List<ReleaseResource>();

Loading…
Cancel
Save