Add basic support for Cardigann definitions (#571)

* Add basic support for Cardigann definitions

* Add HDME definition

* Fix tests

* support split with negative indexes

* allow FromTimeAgo formats without spaces betwen value and unit

Example: 2h 3m

* Add basic support for Cardigann definitions

* Add HDME definition

* Fix tests

* support split with negative indexes

* allow FromTimeAgo formats without spaces betwen value and unit

Example: 2h 3m
This commit is contained in:
kaso17
2016-10-27 09:30:03 +02:00
committed by flightlevel
parent fa9bbaa18c
commit 21cffe2d35
13 changed files with 987 additions and 48 deletions

View File

@@ -9,45 +9,58 @@ namespace Jackett.Utils
{
public static class ParseUtil
{
public static string NormalizeSpace(string s)
{
return s.Trim();
}
public static string NormalizeNumber(string s)
{
string normalized = NormalizeSpace(s);
normalized = normalized.Replace("-", "0");
normalized = normalized.Replace(",", "");
return normalized;
}
public static double CoerceDouble(string str)
{
return double.Parse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture);
return double.Parse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture);
}
public static float CoerceFloat(string str)
{
return float.Parse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture);
return float.Parse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture);
}
public static int CoerceInt(string str)
{
return int.Parse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture);
return int.Parse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture);
}
public static long CoerceLong(string str)
{
return long.Parse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture);
return long.Parse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture);
}
public static bool TryCoerceDouble(string str, out double result)
{
return double.TryParse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
return double.TryParse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
}
public static bool TryCoerceFloat(string str, out float result)
{
return float.TryParse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
return float.TryParse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
}
public static bool TryCoerceInt(string str, out int result)
{
return int.TryParse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
return int.TryParse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
}
public static bool TryCoerceLong(string str, out long result)
{
return long.TryParse(str.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
return long.TryParse(NormalizeNumber(str), NumberStyles.Any, CultureInfo.InvariantCulture, out result);
}
}