mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
Fixed: (Cardigann) Implement validate as field filter
This commit is contained in:
@@ -747,18 +747,20 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
// for debugging
|
// for debugging
|
||||||
var debugData = data.Replace("\r", "\\r").Replace("\n", "\\n").Replace("\xA0", "\\xA0");
|
var debugData = data.Replace("\r", "\\r").Replace("\n", "\\n").Replace("\xA0", "\\xA0");
|
||||||
var strTag = (string)filter.Args;
|
var strTag = (string)filter.Args;
|
||||||
if (strTag != null)
|
strTag = strTag != null ? $"({strTag}):" : ":";
|
||||||
{
|
|
||||||
strTag = string.Format("({0}):", strTag);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strTag = ":";
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger.Debug(string.Format("CardigannIndexer ({0}): strdump{1} {2}", _definition.Id, strTag, debugData));
|
_logger.Debug($"CardigannIndexer ({_definition.Id}): strdump{strTag} {debugData}");
|
||||||
|
break;
|
||||||
|
case "validate":
|
||||||
|
char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
|
||||||
|
var args = (string)filter.Args;
|
||||||
|
var argsList = args.ToLower().Split(delimiters, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
var validList = argsList.ToList();
|
||||||
|
var validIntersect = validList.Intersect(data.ToLower().Split(delimiters, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)).ToList();
|
||||||
|
data = string.Join(", ", validIntersect);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
_logger.Error($"CardigannIndexer ({_definition.Id}): Unsupported field filter: {filter.Name}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -585,8 +585,12 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
value = release.PosterUrl;
|
value = release.PosterUrl;
|
||||||
break;
|
break;
|
||||||
case "genre":
|
case "genre":
|
||||||
|
release.Genres ??= new List<string>();
|
||||||
char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
|
char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
|
||||||
release.Genres = release.Genres.Union(value.Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries)).ToList();
|
release.Genres = release.Genres
|
||||||
|
.Union(value.Split(delimiters, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries))
|
||||||
|
.Select(x => x.Replace("_", " "))
|
||||||
|
.ToList();
|
||||||
value = string.Join(", ", release.Genres);
|
value = string.Join(", ", release.Genres);
|
||||||
break;
|
break;
|
||||||
case "year":
|
case "year":
|
||||||
@@ -632,29 +636,14 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
switch (filter.Name)
|
switch (filter.Name)
|
||||||
{
|
{
|
||||||
case "andmatch":
|
case "andmatch":
|
||||||
var characterLimit = -1;
|
// See IndexerBase.FilterReleasesByQuery
|
||||||
if (filter.Args != null)
|
|
||||||
{
|
|
||||||
characterLimit = int.Parse(filter.Args);
|
|
||||||
}
|
|
||||||
|
|
||||||
var queryKeywords = variables[".Keywords"] as string;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "strdump":
|
case "strdump":
|
||||||
// for debugging
|
// for debugging
|
||||||
_logger.Debug(string.Format("CardigannIndexer ({0}): row strdump: {1}", _definition.Id, row.ToString()));
|
_logger.Debug($"CardigannIndexer ({_definition.Id}): row strdump: {row}");
|
||||||
break;
|
|
||||||
case "validate":
|
|
||||||
char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
|
|
||||||
var args = (string)filter.Args;
|
|
||||||
var argsList = args.ToLower().Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
var validList = argsList.ToList();
|
|
||||||
var validIntersect = validList.Intersect(row.ToString().ToLower().Split(delimiters, StringSplitOptions.RemoveEmptyEntries)).ToList();
|
|
||||||
row = string.Join(", ", validIntersect);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
_logger.Error(string.Format("CardigannIndexer ({0}): Unsupported rows filter: {1}", _definition.Id, filter.Name));
|
_logger.Error($"CardigannIndexer ({_definition.Id}): Unsupported rows filter: {filter.Name}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user