Newpct: Movie accents (diacritics) (#5878)

This commit is contained in:
snamds 2019-08-18 22:53:14 +02:00 committed by garfield69
parent 55f52add97
commit e272ac447d
1 changed files with 24 additions and 0 deletions

View File

@ -107,6 +107,7 @@ namespace Jackett.Common.Indexers
private bool _includeVo; private bool _includeVo;
private bool _filterMovies; private bool _filterMovies;
private bool _removeMovieAccents;
private DateTime _dailyNow; private DateTime _dailyNow;
private int _dailyResultIdx; private int _dailyResultIdx;
@ -142,6 +143,9 @@ namespace Jackett.Common.Indexers
var filterMoviesItem = new BoolItem() { Name = "Only full match movies", Value = true }; var filterMoviesItem = new BoolItem() { Name = "Only full match movies", Value = true };
configData.AddDynamic("FilterMovies", filterMoviesItem); configData.AddDynamic("FilterMovies", filterMoviesItem);
var removeMovieAccentsItem = new BoolItem() { Name = "Remove accents in movie searchs", Value = true };
configData.AddDynamic("RemoveMovieAccents", removeMovieAccentsItem);
} }
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson) public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@ -254,6 +258,7 @@ namespace Jackett.Common.Indexers
_includeVo = ((BoolItem)configData.GetDynamic("IncludeVo")).Value; _includeVo = ((BoolItem)configData.GetDynamic("IncludeVo")).Value;
_filterMovies = ((BoolItem)configData.GetDynamic("FilterMovies")).Value; _filterMovies = ((BoolItem)configData.GetDynamic("FilterMovies")).Value;
_removeMovieAccents = ((BoolItem)configData.GetDynamic("RemoveMovieAccents")).Value;
_dailyNow = DateTime.Now; _dailyNow = DateTime.Now;
_dailyResultIdx = 0; _dailyResultIdx = 0;
bool rssMode = string.IsNullOrEmpty(query.SanitizedSearchTerm); bool rssMode = string.IsNullOrEmpty(query.SanitizedSearchTerm);
@ -570,6 +575,8 @@ namespace Jackett.Common.Indexers
var releases = new List<NewpctRelease>(); var releases = new List<NewpctRelease>();
string searchStr = query.SanitizedSearchTerm; string searchStr = query.SanitizedSearchTerm;
if (_removeMovieAccents)
searchStr = RemoveDiacritics(searchStr);
Uri validUri = null; Uri validUri = null;
int pg = 1; int pg = 1;
@ -837,5 +844,22 @@ namespace Jackett.Common.Indexers
return result; return result;
} }
private string RemoveDiacritics(string text)
{
var normalizedString = text.Normalize(NormalizationForm.FormD);
var stringBuilder = new StringBuilder();
foreach (var c in normalizedString)
{
var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
if (unicodeCategory != UnicodeCategory.NonSpacingMark)
{
stringBuilder.Append(c);
}
}
return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}
} }
} }