mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Add support for parsing unix Timestamps
This commit is contained in:
@@ -75,24 +75,6 @@ namespace Jackett.Utils
|
|||||||
return DateTime.SpecifyKind(DateTime.Now - timeAgo, DateTimeKind.Local);
|
return DateTime.SpecifyKind(DateTime.Now - timeAgo, DateTimeKind.Local);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TimeSpan ParseTimeSpan(string time)
|
|
||||||
{
|
|
||||||
TimeSpan offset = TimeSpan.Zero;
|
|
||||||
if (time.EndsWith("AM"))
|
|
||||||
{
|
|
||||||
time = time.Substring(0, time.Length - 2);
|
|
||||||
}
|
|
||||||
else if (time.EndsWith("PM"))
|
|
||||||
{
|
|
||||||
time = time.Substring(0, time.Length - 2);
|
|
||||||
offset = TimeSpan.FromHours(12);
|
|
||||||
}
|
|
||||||
|
|
||||||
var ts = TimeSpan.Parse(time);
|
|
||||||
ts += offset;
|
|
||||||
return ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Uses the DateTimeRoutines library to parse the date
|
// Uses the DateTimeRoutines library to parse the date
|
||||||
// http://www.codeproject.com/Articles/33298/C-Date-Time-Parser
|
// http://www.codeproject.com/Articles/33298/C-Date-Time-Parser
|
||||||
public static DateTime FromFuzzyTime(string str, DateTimeRoutines.DateTimeFormat format = DateTimeRoutines.DateTimeFormat.USA_DATE)
|
public static DateTime FromFuzzyTime(string str, DateTimeRoutines.DateTimeFormat format = DateTimeRoutines.DateTimeFormat.USA_DATE)
|
||||||
@@ -130,7 +112,7 @@ namespace Jackett.Utils
|
|||||||
{
|
{
|
||||||
var time = str.Replace(match.Groups[0].Value, "");
|
var time = str.Replace(match.Groups[0].Value, "");
|
||||||
DateTime dt = DateTime.SpecifyKind(DateTime.UtcNow.Date, DateTimeKind.Unspecified);
|
DateTime dt = DateTime.SpecifyKind(DateTime.UtcNow.Date, DateTimeKind.Unspecified);
|
||||||
dt += ParseTimeSpan(time);
|
dt += TimeSpan.Parse(time);
|
||||||
return dt;
|
return dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,7 +122,7 @@ namespace Jackett.Utils
|
|||||||
{
|
{
|
||||||
var time = str.Replace(match.Groups[0].Value, "");
|
var time = str.Replace(match.Groups[0].Value, "");
|
||||||
DateTime dt = DateTime.SpecifyKind(DateTime.UtcNow.Date, DateTimeKind.Unspecified);
|
DateTime dt = DateTime.SpecifyKind(DateTime.UtcNow.Date, DateTimeKind.Unspecified);
|
||||||
dt += ParseTimeSpan(time);
|
dt += TimeSpan.Parse(time);
|
||||||
dt -= TimeSpan.FromDays(1);
|
dt -= TimeSpan.FromDays(1);
|
||||||
return dt;
|
return dt;
|
||||||
}
|
}
|
||||||
@@ -151,11 +133,25 @@ namespace Jackett.Utils
|
|||||||
{
|
{
|
||||||
var time = str.Replace(match.Groups[0].Value, "");
|
var time = str.Replace(match.Groups[0].Value, "");
|
||||||
DateTime dt = DateTime.SpecifyKind(DateTime.UtcNow.Date, DateTimeKind.Unspecified);
|
DateTime dt = DateTime.SpecifyKind(DateTime.UtcNow.Date, DateTimeKind.Unspecified);
|
||||||
dt += ParseTimeSpan(time);
|
dt += TimeSpan.Parse(time);
|
||||||
dt += TimeSpan.FromDays(1);
|
dt += TimeSpan.FromDays(1);
|
||||||
return dt;
|
return dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// try parsing the str as an unix timestamp
|
||||||
|
var unixTimeStamp = long.Parse(str);
|
||||||
|
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
|
||||||
|
dt = dt.AddSeconds(unixTimeStamp).ToLocalTime();
|
||||||
|
return dt;
|
||||||
|
}
|
||||||
|
catch (FormatException)
|
||||||
|
{
|
||||||
|
// it wasn't a timestamp, continue....
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// add missing year
|
// add missing year
|
||||||
match = missingYearRegexp.Match(str);
|
match = missingYearRegexp.Match(str);
|
||||||
if (match.Success)
|
if (match.Success)
|
||||||
|
Reference in New Issue
Block a user