pull/7784/merge
Bogdan 3 weeks ago committed by GitHub
commit 0abda5f23e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -12,10 +12,10 @@ namespace NzbDrone.Core.IndexerSearch.Definitions
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)}]";
}
}
}

@ -137,6 +137,11 @@ namespace NzbDrone.Core.Indexers.FileList
private IEnumerable<IndexerRequest> GetRequest(string searchType, IEnumerable<int> categories, string parameters)
{
if (categories.Empty())
{
yield break;
}
var categoriesQuery = string.Join(",", categories.Distinct());
var baseUrl = string.Format("{0}/api.php?action={1}&category={2}{3}", Settings.BaseUrl.TrimEnd('/'), searchType, categoriesQuery, parameters);

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using Equ;
using FluentValidation;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Annotations;
using NzbDrone.Core.Languages;
using NzbDrone.Core.Validation;
@ -16,6 +17,14 @@ namespace NzbDrone.Core.Indexers.FileList
RuleFor(c => c.Username).NotEmpty();
RuleFor(c => c.Passkey).NotEmpty();
RuleFor(c => c).Custom((c, context) =>
{
if (c.Categories.Empty() && c.AnimeCategories.Empty())
{
context.AddFailure("Either 'Categories' or 'Anime Categories' must be provided");
}
});
RuleFor(c => c.SeedCriteria).SetValidator(_ => new SeedCriteriaSettingsValidator());
}
}

@ -8,6 +8,7 @@ using NzbDrone.Common.Instrumentation;
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 @@ namespace NzbDrone.Core.Indexers.Newznab
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 @@ namespace NzbDrone.Core.Indexers.Newznab
if (searchCriteria.SearchMode.HasFlag(SearchMode.SearchTitle))
{
AddTitlePageableRequests(pageableRequests,
Settings.Categories,
categories,
searchCriteria,
$"&season={NewznabifySeasonNumber(searchCriteria.SeasonNumber)}&ep={searchCriteria.EpisodeNumber}");
}
@ -249,7 +252,7 @@ namespace NzbDrone.Core.Indexers.Newznab
if (searchCriteria.SearchMode == SearchMode.Default)
{
AddTitlePageableRequests(pageableRequests,
Settings.Categories,
categories,
searchCriteria,
$"&season={NewznabifySeasonNumber(searchCriteria.SeasonNumber)}&ep={searchCriteria.EpisodeNumber}");
}
@ -474,13 +477,15 @@ namespace NzbDrone.Core.Indexers.Newznab
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 @@ namespace NzbDrone.Core.Indexers.Newznab
{
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…
Cancel
Save