parse language and subs

This commit is contained in:
Gabriel Couto 2025-11-19 12:12:17 -03:00
parent ed3b25b3d6
commit 7348ad55c0
2 changed files with 17 additions and 3 deletions

View file

@ -30,7 +30,7 @@ public class CardigannBase
protected readonly IndexerCapabilitiesCategories _categories = new();
protected readonly List<string> _defaultCategories = new();
protected readonly string[] OptionalFields = new string[] { "imdb", "imdbid", "tmdbid", "rageid", "tvdbid", "tvmazeid", "traktid", "doubanid", "poster", "banner", "description", "genre" };
protected readonly string[] OptionalFields = new string[] { "imdb", "imdbid", "tmdbid", "rageid", "tvdbid", "tvmazeid", "traktid", "doubanid", "poster", "banner", "description", "genre", "languages", "subs" };
protected static readonly string[] _SupportedLogicFunctions =
{

View file

@ -657,13 +657,27 @@ private string ParseFields(string value, string fieldName, TorrentInfo release,
break;
case "genre":
release.Genres ??= new List<string>();
char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
char[] delimitersG = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
release.Genres = release.Genres
.Union(value.Split(delimiters, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries))
.Union(value.Split(delimitersG, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries))
.Select(x => x.Replace("_", " "))
.ToList();
value = string.Join(", ", release.Genres);
break;
case "languages":
release.Languages ??= new List<string>();
char[] delimitersL = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
var releaseLanguages = release.Languages.Union(value.Split(delimitersL, StringSplitOptions.RemoveEmptyEntries));
release.Languages = releaseLanguages.Select(x => x.Replace("_", " ")).ToList();
value = string.Join(",", release.Languages);
break;
case "subs":
release.Subs ??= new List<string>();
char[] delimitersS = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
var releaseSubs = release.Subs.Union(value.Split(delimitersS, StringSplitOptions.RemoveEmptyEntries));
release.Subs = releaseSubs.Select(x => x.Replace("_", " ")).ToList();
value = string.Join(",", release.Subs);
break;
case "year":
release.Year = ParseUtil.CoerceInt(value);
value = release.Year.ToString();