Fixed: (Cardigann) Genre Parsing

New: (Cardigann) Add Validate Field Filter

v7
This commit is contained in:
bakerboy448
2022-08-01 08:55:46 -05:00
parent 2db24d454e
commit 5c5dfbb66b

View File

@@ -594,8 +594,9 @@ namespace NzbDrone.Core.Indexers.Cardigann
value = release.PosterUrl; value = release.PosterUrl;
break; break;
case "genre": case "genre":
release.Genres = release.Genres.Union(value.Split(',')).ToList(); char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']' };
value = string.Join(",", release.Genres); release.Genres = release.Genres.Union(value.Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries)).ToList();
value = string.Join(", ", release.Genres);
break; break;
case "year": case "year":
release.Year = ParseUtil.CoerceInt(value); release.Year = ParseUtil.CoerceInt(value);
@@ -653,6 +654,14 @@ namespace NzbDrone.Core.Indexers.Cardigann
// for debugging // for debugging
_logger.Debug(string.Format("CardigannIndexer ({0}): row strdump: {1}", _definition.Id, row.ToString())); _logger.Debug(string.Format("CardigannIndexer ({0}): row strdump: {1}", _definition.Id, row.ToString()));
break; 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;
default: default:
_logger.Error(string.Format("CardigannIndexer ({0}): Unsupported rows filter: {1}", _definition.Id, filter.Name)); _logger.Error(string.Format("CardigannIndexer ({0}): Unsupported rows filter: {1}", _definition.Id, filter.Name));
break; break;