mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
Fixed: (Cardigann) Switch to DateTime standard
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
@@ -613,14 +614,22 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
||||
case "timeparse":
|
||||
case "dateparse":
|
||||
var layout = (string)filter.Args;
|
||||
try
|
||||
|
||||
if (layout.Contains("yy") && DateTime.TryParseExact(data, layout, CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate))
|
||||
{
|
||||
var date = DateTimeUtil.ParseDateTimeGoLang(data, layout);
|
||||
data = date.ToString(DateTimeUtil.Rfc1123ZPattern);
|
||||
data = parsedDate.ToString(DateTimeUtil.Rfc1123ZPattern);
|
||||
}
|
||||
catch (InvalidDateException ex)
|
||||
else
|
||||
{
|
||||
_logger.Debug(ex.Message);
|
||||
try
|
||||
{
|
||||
var date = DateTimeUtil.ParseDateTimeGoLang(data, layout);
|
||||
data = date.ToString(DateTimeUtil.Rfc1123ZPattern);
|
||||
}
|
||||
catch (InvalidDateException ex)
|
||||
{
|
||||
_logger.Debug(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -657,15 +666,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
||||
break;
|
||||
case "trim":
|
||||
var cutset = (string)filter.Args;
|
||||
if (cutset != null)
|
||||
{
|
||||
data = data.Trim(cutset[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
data = data.Trim();
|
||||
}
|
||||
|
||||
data = cutset != null ? data.Trim(cutset[0]) : data.Trim();
|
||||
break;
|
||||
case "prepend":
|
||||
var prependstr = (string)filter.Args;
|
||||
|
@@ -72,6 +72,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
||||
}
|
||||
|
||||
var parsedJson = JToken.Parse(results);
|
||||
|
||||
if (parsedJson == null)
|
||||
{
|
||||
throw new IndexerException(indexerResponse, "Error Parsing Json Response");
|
||||
@@ -80,12 +81,10 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
||||
if (search.Rows.Count != null)
|
||||
{
|
||||
var countVal = HandleJsonSelector(search.Rows.Count, parsedJson, variables);
|
||||
if (int.TryParse(countVal, out var count))
|
||||
|
||||
if (int.TryParse(countVal, out var count) && count < 1)
|
||||
{
|
||||
if (count < 1)
|
||||
{
|
||||
return releases;
|
||||
}
|
||||
return releases;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace NzbDrone.Core.Parser
|
||||
@@ -120,6 +121,13 @@ namespace NzbDrone.Core.Parser
|
||||
try
|
||||
{
|
||||
str = str.Trim();
|
||||
|
||||
// try parsing the str as an unix timestamp
|
||||
if (str.All(char.IsDigit) && long.TryParse(str, out var unixTimeStamp))
|
||||
{
|
||||
return UnixTimestampToDateTime(unixTimeStamp);
|
||||
}
|
||||
|
||||
if (str.ToLower().Contains("now"))
|
||||
{
|
||||
return DateTime.UtcNow;
|
||||
@@ -212,14 +220,6 @@ namespace NzbDrone.Core.Parser
|
||||
return dt;
|
||||
}
|
||||
|
||||
// try parsing the str as an unix timestamp
|
||||
if (long.TryParse(str, out var unixTimeStamp))
|
||||
{
|
||||
return UnixTimestampToDateTime(unixTimeStamp);
|
||||
}
|
||||
|
||||
// it wasn't a timestamp, continue....
|
||||
|
||||
// add missing year
|
||||
match = _MissingYearRegexp.Match(str);
|
||||
if (match.Success)
|
||||
@@ -312,7 +312,7 @@ namespace NzbDrone.Core.Parser
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
throw new InvalidDateException($"Error while parsing DateTime \"{date}\", using layout \"{layout}\" ({pattern}): {ex.Message}");
|
||||
throw new InvalidDateException($"Error while parsing DateTime \"{date}\", using layout \"{layout}\" ({pattern}): {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user