From b0532c549a6ba8c743a807aed7f6b42b63aee708 Mon Sep 17 00:00:00 2001 From: crobibero Date: Mon, 10 Aug 2020 11:58:06 -0600 Subject: add proper converter for legacy datetime --- .../TypeConverters/DateTimeTypeConverter.cs | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs (limited to 'Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs') diff --git a/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs b/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs new file mode 100644 index 000000000..c54a8c0d8 --- /dev/null +++ b/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs @@ -0,0 +1,37 @@ +using System; +using System.ComponentModel; +using System.Globalization; + +namespace Jellyfin.Api.TypeConverters +{ + /// + /// Custom datetime parser. + /// + public class DateTimeTypeConverter : TypeConverter + { + /// + public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + { + if (sourceType == typeof(string)) + { + return true; + } + + return base.CanConvertFrom(context, sourceType); + } + + /// + public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) + { + if (value is string dateString) + { + if (DateTime.TryParseExact(dateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime)) + { + return dateTime; + } + } + + return base.ConvertFrom(context, culture, value); + } + } +} -- cgit v1.2.3 From eb7ab31b5ab8045aff41f014bb61dfd67b4ec557 Mon Sep 17 00:00:00 2001 From: crobibero Date: Wed, 12 Aug 2020 12:43:57 -0600 Subject: add support for GetActivityLogs --- Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs') diff --git a/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs b/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs index c54a8c0d8..b6e5225b1 100644 --- a/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs +++ b/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs @@ -25,9 +25,16 @@ namespace Jellyfin.Api.TypeConverters { if (value is string dateString) { - if (DateTime.TryParseExact(dateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime)) + // Mark Played Item. + if (DateTime.TryParseExact(dateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime1)) { - return dateTime; + return dateTime1; + } + + // Get Activity Logs. + if (DateTime.TryParse(dateString, null, DateTimeStyles.RoundtripKind, out var dateTime2)) + { + return dateTime2; } } -- cgit v1.2.3 From afeba4dae75b6436a12b77965551da149452808a Mon Sep 17 00:00:00 2001 From: crobibero Date: Wed, 12 Aug 2020 13:07:11 -0600 Subject: simplify datetime parsing --- Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs') diff --git a/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs b/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs index b6e5225b1..315b47329 100644 --- a/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs +++ b/Jellyfin.Api/TypeConverters/DateTimeTypeConverter.cs @@ -26,15 +26,15 @@ namespace Jellyfin.Api.TypeConverters if (value is string dateString) { // Mark Played Item. - if (DateTime.TryParseExact(dateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime1)) + if (DateTime.TryParseExact(dateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime)) { - return dateTime1; + return dateTime; } // Get Activity Logs. - if (DateTime.TryParse(dateString, null, DateTimeStyles.RoundtripKind, out var dateTime2)) + if (DateTime.TryParse(dateString, null, DateTimeStyles.RoundtripKind, out dateTime)) { - return dateTime2; + return dateTime; } } -- cgit v1.2.3