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 NzbDrone.Common.Http;
using NzbDrone.Core.IndexerSearch.Definitions;
@ -55,19 +55,6 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet
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;

@ -84,6 +84,11 @@ namespace Sonarr.Api.V3.Indexers
return GetEpisodeReleases(Request.Query.episodeId);
}
if (Request.Query.seriesId.HasValue && Request.Query.seasonNumber.HasValue)
{
return GetSeasonReleases(Request.Query.seriesId, Request.Query.seasonNumber);
}
return GetRss();
}
@ -98,7 +103,24 @@ namespace Sonarr.Api.V3.Indexers
}
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>();

Loading…
Cancel
Save