mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Cardigann: Add support for re_replace template function
Example: {{ re_replace .Query.Keywords "[^a-zA-Z0-9]+" "%" }}
This commit is contained in:
@@ -224,6 +224,26 @@ namespace Jackett.Indexers
|
|||||||
variables = getTemplateVariablesFromConfigData();
|
variables = getTemplateVariablesFromConfigData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// handle re_replace expression
|
||||||
|
// Example: {{ re_replace .Query.Keywords "[^a-zA-Z0-9]+" "%" }}
|
||||||
|
Regex ReReplaceRegex = new Regex(@"{{\s*re_replace\s+(\..+?)\s+""(.+)""\s+""(.+?)""\s*}}");
|
||||||
|
var ReReplaceRegexMatches = ReReplaceRegex.Match(template);
|
||||||
|
|
||||||
|
while (ReReplaceRegexMatches.Success)
|
||||||
|
{
|
||||||
|
string all = ReReplaceRegexMatches.Groups[0].Value;
|
||||||
|
string variable = ReReplaceRegexMatches.Groups[1].Value;
|
||||||
|
string regexp = ReReplaceRegexMatches.Groups[2].Value;
|
||||||
|
string newvalue = ReReplaceRegexMatches.Groups[3].Value;
|
||||||
|
|
||||||
|
Regex ReplaceRegex = new Regex(regexp);
|
||||||
|
var input = (string)variables[variable];
|
||||||
|
var expanded = ReplaceRegex.Replace(input, newvalue);
|
||||||
|
|
||||||
|
template = template.Replace(all, expanded);
|
||||||
|
ReReplaceRegexMatches = ReReplaceRegexMatches.NextMatch();
|
||||||
|
}
|
||||||
|
|
||||||
// handle if ... else ... expression
|
// handle if ... else ... expression
|
||||||
Regex IfElseRegex = new Regex(@"{{if\s*(.+?)\s*}}(.*?){{\s*else\s*}}(.*?){{\s*end\s*}}");
|
Regex IfElseRegex = new Regex(@"{{if\s*(.+?)\s*}}(.*?){{\s*else\s*}}(.*?){{\s*end\s*}}");
|
||||||
var IfElseRegexMatches = IfElseRegex.Match(template);
|
var IfElseRegexMatches = IfElseRegex.Match(template);
|
||||||
|
Reference in New Issue
Block a user