mirror of
https://github.com/Sonarr/Sonarr
synced 2026-05-09 05:40:53 +02:00
Fixed: Respect series type in Newznab/Torznab searches for specials
Closes #7783
This commit is contained in:
parent
d62eea604a
commit
9cb9c711be
2 changed files with 18 additions and 6 deletions
|
|
@ -12,10 +12,10 @@ public override string ToString()
|
|||
|
||||
if (episodeTitles.Count > 0)
|
||||
{
|
||||
return string.Format("[{0}] Specials", Series.Title);
|
||||
return $"[{Series.Title} ({Series.SeriesType})] Specials";
|
||||
}
|
||||
|
||||
return string.Format("[{0} : {1}]", Series.Title, string.Join(",", EpisodeQueryTitles));
|
||||
return $"[{Series.Title} ({Series.SeriesType}): {string.Join(",", EpisodeQueryTitles)}]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
using NzbDrone.Core.DataAugmentation.Scene;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.ThingiProvider;
|
||||
using NzbDrone.Core.Tv;
|
||||
|
||||
namespace NzbDrone.Core.Indexers.Newznab
|
||||
{
|
||||
|
|
@ -228,10 +229,12 @@ public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearch
|
|||
return pageableRequests;
|
||||
}
|
||||
|
||||
var categories = GetSearchCategories(searchCriteria);
|
||||
|
||||
if (searchCriteria.SearchMode.HasFlag(SearchMode.SearchID) || searchCriteria.SearchMode == SearchMode.Default)
|
||||
{
|
||||
AddTvIdPageableRequests(pageableRequests,
|
||||
Settings.Categories,
|
||||
categories,
|
||||
searchCriteria,
|
||||
$"&season={NewznabifySeasonNumber(searchCriteria.SeasonNumber)}&ep={searchCriteria.EpisodeNumber}");
|
||||
}
|
||||
|
|
@ -239,7 +242,7 @@ public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearch
|
|||
if (searchCriteria.SearchMode.HasFlag(SearchMode.SearchTitle))
|
||||
{
|
||||
AddTitlePageableRequests(pageableRequests,
|
||||
Settings.Categories,
|
||||
categories,
|
||||
searchCriteria,
|
||||
$"&season={NewznabifySeasonNumber(searchCriteria.SeasonNumber)}&ep={searchCriteria.EpisodeNumber}");
|
||||
}
|
||||
|
|
@ -249,7 +252,7 @@ public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearch
|
|||
if (searchCriteria.SearchMode == SearchMode.Default)
|
||||
{
|
||||
AddTitlePageableRequests(pageableRequests,
|
||||
Settings.Categories,
|
||||
categories,
|
||||
searchCriteria,
|
||||
$"&season={NewznabifySeasonNumber(searchCriteria.SeasonNumber)}&ep={searchCriteria.EpisodeNumber}");
|
||||
}
|
||||
|
|
@ -474,13 +477,15 @@ public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearc
|
|||
|
||||
if (SupportsSearch)
|
||||
{
|
||||
var categories = GetSearchCategories(searchCriteria);
|
||||
|
||||
foreach (var queryTitle in searchCriteria.EpisodeQueryTitles)
|
||||
{
|
||||
var query = queryTitle.Replace('+', ' ');
|
||||
query = System.Web.HttpUtility.UrlEncode(query);
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(MaxPages,
|
||||
Settings.Categories.Concat(Settings.AnimeCategories),
|
||||
categories,
|
||||
"search",
|
||||
$"&q={query}"));
|
||||
}
|
||||
|
|
@ -634,5 +639,12 @@ private static string NewznabifySeasonNumber(int seasonNumber)
|
|||
{
|
||||
return seasonNumber == 0 ? "00" : seasonNumber.ToString();
|
||||
}
|
||||
|
||||
private IList<int> GetSearchCategories(SearchCriteriaBase searchCriteria)
|
||||
{
|
||||
return searchCriteria.Series?.SeriesType is SeriesTypes.Anime
|
||||
? Settings.AnimeCategories.ToList()
|
||||
: Settings.Categories.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue