mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
Removed support for old implicit regex syntax such as $1,1$ now regex syntax must be declared explicitly like this $regex:1,1$
This commit is contained in:
parent
eea65f67db
commit
848004d205
1 changed files with 39 additions and 46 deletions
|
@ -229,7 +229,7 @@ private void ParseRegexList()
|
|||
}
|
||||
}
|
||||
|
||||
public string ParseURL(string url, bool output)
|
||||
public string ParseURL(string url, bool usingResponse)
|
||||
{
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
|
@ -259,7 +259,7 @@ public string ParseURL(string url, bool output)
|
|||
if (syntaxLength > 0)
|
||||
{
|
||||
string syntax = url.Substring(syntaxStartIndex, syntaxLength);
|
||||
string syntaxResult = ParseSyntax(syntax, output);
|
||||
string syntaxResult = ParseSyntax(syntax, usingResponse);
|
||||
|
||||
if (!string.IsNullOrEmpty(syntaxResult))
|
||||
{
|
||||
|
@ -284,57 +284,50 @@ public string ParseURL(string url, bool output)
|
|||
return result.ToString();
|
||||
}
|
||||
|
||||
private string ParseSyntax(string syntax, bool output)
|
||||
private string ParseSyntax(string syntax, bool usingResponse)
|
||||
{
|
||||
CustomUploaderResponseParseType parseType;
|
||||
|
||||
if (syntax.Equals("response", StringComparison.InvariantCultureIgnoreCase)) // Example: $response$
|
||||
if (usingResponse)
|
||||
{
|
||||
return response;
|
||||
}
|
||||
else if (syntax.StartsWith("regex:", StringComparison.InvariantCultureIgnoreCase)) // Example: $regex:1,1$
|
||||
{
|
||||
parseType = CustomUploaderResponseParseType.Regex;
|
||||
syntax = syntax.Substring(6);
|
||||
}
|
||||
else if (syntax.StartsWith("json:", StringComparison.InvariantCultureIgnoreCase)) // Example: $json:Files[0].URL$
|
||||
{
|
||||
parseType = CustomUploaderResponseParseType.Json;
|
||||
syntax = syntax.Substring(5);
|
||||
}
|
||||
else if (syntax.StartsWith("xml:", StringComparison.InvariantCultureIgnoreCase)) // Example: $xml:/Files/File[1]/URL$
|
||||
{
|
||||
parseType = CustomUploaderResponseParseType.Xml;
|
||||
syntax = syntax.Substring(4);
|
||||
}
|
||||
else if (syntax.StartsWith("random:", StringComparison.InvariantCultureIgnoreCase)) // Example: $random:domain1.com|domain2.com$
|
||||
{
|
||||
parseType = CustomUploaderResponseParseType.Random;
|
||||
syntax = syntax.Substring(7);
|
||||
}
|
||||
else // Example: $1,1$
|
||||
{
|
||||
parseType = CustomUploaderResponseParseType.Regex;
|
||||
if (syntax.Equals("response", StringComparison.InvariantCultureIgnoreCase)) // Example: $response$
|
||||
{
|
||||
return response;
|
||||
}
|
||||
else if (syntax.StartsWith("regex:", StringComparison.InvariantCultureIgnoreCase)) // Example: $regex:1|1$
|
||||
{
|
||||
return ParseSyntax(CustomUploaderResponseParseType.Regex, syntax.Substring(6));
|
||||
}
|
||||
else if (syntax.StartsWith("json:", StringComparison.InvariantCultureIgnoreCase)) // Example: $json:Files[0].URL$
|
||||
{
|
||||
return ParseSyntax(CustomUploaderResponseParseType.Json, syntax.Substring(5));
|
||||
}
|
||||
else if (syntax.StartsWith("xml:", StringComparison.InvariantCultureIgnoreCase)) // Example: $xml:/Files/File[1]/URL$
|
||||
{
|
||||
return ParseSyntax(CustomUploaderResponseParseType.Xml, syntax.Substring(4));
|
||||
}
|
||||
}
|
||||
|
||||
if (syntax.StartsWith("random:", StringComparison.InvariantCultureIgnoreCase)) // Example: $random:domain1.com|domain2.com$
|
||||
{
|
||||
return ParseSyntax(CustomUploaderResponseParseType.Random, syntax.Substring(7));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private string ParseSyntax(CustomUploaderResponseParseType parseType, string syntax)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(syntax))
|
||||
{
|
||||
if (output)
|
||||
switch (parseType)
|
||||
{
|
||||
switch (parseType)
|
||||
{
|
||||
case CustomUploaderResponseParseType.Regex:
|
||||
return ParseRegexSyntax(syntax);
|
||||
case CustomUploaderResponseParseType.Json:
|
||||
return ParseJsonSyntax(syntax);
|
||||
case CustomUploaderResponseParseType.Xml:
|
||||
return ParseXmlSyntax(syntax);
|
||||
}
|
||||
}
|
||||
|
||||
if (parseType == CustomUploaderResponseParseType.Random)
|
||||
{
|
||||
return ParseRandomSyntax(syntax);
|
||||
case CustomUploaderResponseParseType.Regex:
|
||||
return ParseRegexSyntax(syntax);
|
||||
case CustomUploaderResponseParseType.Json:
|
||||
return ParseJsonSyntax(syntax);
|
||||
case CustomUploaderResponseParseType.Xml:
|
||||
return ParseXmlSyntax(syntax);
|
||||
case CustomUploaderResponseParseType.Random:
|
||||
return ParseRandomSyntax(syntax);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue