mirror of
https://github.com/Radarr/Radarr.git
synced 2024-09-19 07:52:33 +02:00
Added: Option to omit year from indexer searches when searching by title. Also added option to force a movie search by title instead of imdb id. Fixes #1912
This commit is contained in:
parent
e77d9ce848
commit
5ff9dc3500
@ -52,24 +52,29 @@ public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchC
|
|||||||
{
|
{
|
||||||
var pageableRequests = new IndexerPageableRequestChain();
|
var pageableRequests = new IndexerPageableRequestChain();
|
||||||
|
|
||||||
if (SupportsMovieSearch && searchCriteria.Movie.ImdbId.IsNotNullOrWhiteSpace())
|
if (!Settings.SearchByTitle && SupportsMovieSearch && searchCriteria.Movie.ImdbId.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "movie", $"&imdbid={searchCriteria.Movie.ImdbId.Substring(2)}"));
|
pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "movie", $"&imdbid={searchCriteria.Movie.ImdbId.Substring(2)}"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var searchTitle = System.Web.HttpUtility.UrlPathEncode(Parser.Parser.ReplaceGermanUmlauts(Parser.Parser.NormalizeTitle(searchCriteria.Movie.Title)));
|
|
||||||
var altTitles = searchCriteria.Movie.AlternativeTitles.Take(5).Select(t => t.Title).ToList();
|
var altTitles = searchCriteria.Movie.AlternativeTitles.Take(5).Select(t => t.Title).ToList();
|
||||||
|
altTitles.Add(searchCriteria.Movie.Title);
|
||||||
|
|
||||||
var realMaxPages = (int)MaxPages / (altTitles.Count() + 1);
|
var realMaxPages = (int)MaxPages / (altTitles.Count());
|
||||||
|
|
||||||
pageableRequests.Add(GetPagedRequests(MaxPages - (altTitles.Count() * realMaxPages), Settings.Categories, "search", $"&q={searchTitle}%20{searchCriteria.Movie.Year}"));
|
//pageableRequests.Add(GetPagedRequests(MaxPages - (altTitles.Count() * realMaxPages), Settings.Categories, "search", $"&q={searchTitle}%20{searchCriteria.Movie.Year}"));
|
||||||
|
|
||||||
//Also use alt titles for searching.
|
//Also use alt titles for searching.
|
||||||
foreach (String altTitle in altTitles)
|
foreach (String altTitle in altTitles)
|
||||||
{
|
{
|
||||||
var searchAltTitle = System.Web.HttpUtility.UrlPathEncode(Parser.Parser.ReplaceGermanUmlauts(Parser.Parser.NormalizeTitle(altTitle)));
|
var searchAltTitle = System.Web.HttpUtility.UrlPathEncode(Parser.Parser.ReplaceGermanUmlauts(Parser.Parser.NormalizeTitle(altTitle)));
|
||||||
pageableRequests.Add(GetPagedRequests(realMaxPages, Settings.Categories, "search", $"&q={searchAltTitle}%20{searchCriteria.Movie.Year}"));
|
var queryString = $"&q={searchAltTitle}";
|
||||||
|
if (!Settings.RemoveYear)
|
||||||
|
{
|
||||||
|
queryString += $"%20{searchCriteria.Movie.Year}";
|
||||||
|
}
|
||||||
|
pageableRequests.Add(GetPagedRequests(realMaxPages, Settings.Categories, "search", queryString));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,15 @@ public NewznabSettings()
|
|||||||
[FieldDefinition(4, Label = "Additional Parameters", HelpText = "Additional Newznab parameters", Advanced = true)]
|
[FieldDefinition(4, Label = "Additional Parameters", HelpText = "Additional Newznab parameters", Advanced = true)]
|
||||||
public string AdditionalParameters { get; set; }
|
public string AdditionalParameters { get; set; }
|
||||||
|
|
||||||
// Field 5 is used by TorznabSettings MinimumSeeders
|
[FieldDefinition(5, Label = "Remove year from search string",
|
||||||
|
HelpText = "Should Radarr remove the year after the title when searching this indexer?", Advanced = true, Type = FieldType.Checkbox)]
|
||||||
|
public bool RemoveYear { get; set; }
|
||||||
|
|
||||||
|
[FieldDefinition(6, Label = "Search by Title",
|
||||||
|
HelpText = "By default, Radarr will try to search by IMDB ID if your indexer supports that. However, some indexers are not very good at tagging their releases correctly, so you can force Radarr to search that indexer by title instead.",
|
||||||
|
Advanced = true, Type = FieldType.Checkbox)]
|
||||||
|
public bool SearchByTitle { get; set; }
|
||||||
|
// Field 7 is used by TorznabSettings MinimumSeeders
|
||||||
// If you need to add another field here, update TorznabSettings as well and this comment
|
// If you need to add another field here, update TorznabSettings as well and this comment
|
||||||
|
|
||||||
public virtual NzbDroneValidationResult Validate()
|
public virtual NzbDroneValidationResult Validate()
|
||||||
|
@ -56,7 +56,7 @@ public TorznabSettings()
|
|||||||
MinimumSeeders = IndexerDefaults.MINIMUM_SEEDERS;
|
MinimumSeeders = IndexerDefaults.MINIMUM_SEEDERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
[FieldDefinition(5, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)]
|
[FieldDefinition(7, Type = FieldType.Textbox, Label = "Minimum Seeders", HelpText = "Minimum number of seeders required.", Advanced = true)]
|
||||||
public int MinimumSeeders { get; set; }
|
public int MinimumSeeders { get; set; }
|
||||||
|
|
||||||
public override NzbDroneValidationResult Validate()
|
public override NzbDroneValidationResult Validate()
|
||||||
|
Loading…
Reference in New Issue
Block a user