mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
Fixed: (Cardigann) Invariant date string parsing for "reltime", "timeago", "fuzzytime"
Fixes #835
This commit is contained in:
27
src/NzbDrone.Core.Test/ParserTests/DateUtilFixture.cs
Normal file
27
src/NzbDrone.Core.Test/ParserTests/DateUtilFixture.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Threading;
|
||||||
|
using FluentAssertions;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Core.Parser;
|
||||||
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Test.ParserTests
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class DateUtilFixture : CoreTest
|
||||||
|
{
|
||||||
|
[TestCase("pt-BR")]
|
||||||
|
[TestCase("en-US")]
|
||||||
|
public void should_format_date_invariant(string culture)
|
||||||
|
{
|
||||||
|
Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
|
||||||
|
|
||||||
|
var dateNow = DateTime.Now;
|
||||||
|
|
||||||
|
DateTimeUtil.FromUnknown(dateNow.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture))
|
||||||
|
.ToString(DateTimeUtil.Rfc1123ZPattern, CultureInfo.InvariantCulture)
|
||||||
|
.Should().Be(dateNow.ToString("ddd, dd MMM yyyy HH':'mm':'ss z", CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -617,14 +617,14 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
|
|
||||||
if (layout.Contains("yy") && DateTime.TryParseExact(data, layout, CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate))
|
if (layout.Contains("yy") && DateTime.TryParseExact(data, layout, CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate))
|
||||||
{
|
{
|
||||||
data = parsedDate.ToString(DateTimeUtil.Rfc1123ZPattern);
|
data = parsedDate.ToString(DateTimeUtil.Rfc1123ZPattern, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var date = DateTimeUtil.ParseDateTimeGoLang(data, layout);
|
var date = DateTimeUtil.ParseDateTimeGoLang(data, layout);
|
||||||
data = date.ToString(DateTimeUtil.Rfc1123ZPattern);
|
data = date.ToString(DateTimeUtil.Rfc1123ZPattern, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
catch (InvalidDateException ex)
|
catch (InvalidDateException ex)
|
||||||
{
|
{
|
||||||
@@ -696,10 +696,10 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
break;
|
break;
|
||||||
case "timeago":
|
case "timeago":
|
||||||
case "reltime":
|
case "reltime":
|
||||||
data = DateTimeUtil.FromTimeAgo(data).ToString(DateTimeUtil.Rfc1123ZPattern);
|
data = DateTimeUtil.FromTimeAgo(data).ToString(DateTimeUtil.Rfc1123ZPattern, CultureInfo.InvariantCulture);
|
||||||
break;
|
break;
|
||||||
case "fuzzytime":
|
case "fuzzytime":
|
||||||
data = DateTimeUtil.FromUnknown(data).ToString(DateTimeUtil.Rfc1123ZPattern);
|
data = DateTimeUtil.FromUnknown(data).ToString(DateTimeUtil.Rfc1123ZPattern, CultureInfo.InvariantCulture);
|
||||||
break;
|
break;
|
||||||
case "validfilename":
|
case "validfilename":
|
||||||
data = StringUtil.MakeValidFileName(data, '_', false);
|
data = StringUtil.MakeValidFileName(data, '_', false);
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
@@ -509,7 +510,7 @@ namespace NzbDrone.Core.Indexers.Cardigann
|
|||||||
break;
|
break;
|
||||||
case "date":
|
case "date":
|
||||||
release.PublishDate = DateTimeUtil.FromUnknown(value);
|
release.PublishDate = DateTimeUtil.FromUnknown(value);
|
||||||
value = release.PublishDate.ToString(DateTimeUtil.Rfc1123ZPattern);
|
value = release.PublishDate.ToString(DateTimeUtil.Rfc1123ZPattern, CultureInfo.InvariantCulture);
|
||||||
break;
|
break;
|
||||||
case "files":
|
case "files":
|
||||||
release.Files = ParseUtil.CoerceInt(value);
|
release.Files = ParseUtil.CoerceInt(value);
|
||||||
|
Reference in New Issue
Block a user