Browse Source

fix datetime parsing

crobibero 4 years ago
parent
commit
2f853b902a
1 changed files with 10 additions and 3 deletions
  1. 10 3
      Jellyfin.Api/Controllers/PlaystateController.cs

+ 10 - 3
Jellyfin.Api/Controllers/PlaystateController.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Diagnostics.CodeAnalysis;
+using System.Globalization;
 using System.Threading.Tasks;
 using Jellyfin.Api.Constants;
 using Jellyfin.Api.Helpers;
@@ -73,15 +74,21 @@ namespace Jellyfin.Api.Controllers
         public ActionResult<UserItemDataDto> MarkPlayedItem(
             [FromRoute] Guid userId,
             [FromRoute] Guid itemId,
-            [FromQuery] DateTime? datePlayed)
+            [FromQuery] string? datePlayed)
         {
+            DateTime? parsedDatePlayed = null;
+            if (!string.IsNullOrEmpty(datePlayed))
+            {
+                parsedDatePlayed = DateTime.ParseExact(datePlayed, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
+            }
+
             var user = _userManager.GetUserById(userId);
             var session = RequestHelpers.GetSession(_sessionManager, _authContext, Request);
-            var dto = UpdatePlayedStatus(user, itemId, true, datePlayed);
+            var dto = UpdatePlayedStatus(user, itemId, true, parsedDatePlayed);
             foreach (var additionalUserInfo in session.AdditionalUsers)
             {
                 var additionalUser = _userManager.GetUserById(additionalUserInfo.UserId);
-                UpdatePlayedStatus(additionalUser, itemId, true, datePlayed);
+                UpdatePlayedStatus(additionalUser, itemId, true, parsedDatePlayed);
             }
 
             return dto;