Parcourir la source

add session view endpoint

dkanada il y a 5 ans
Parent
commit
1bc8ca2542

+ 5 - 5
Emby.Server.Implementations/Session/SessionManager.cs

@@ -1686,18 +1686,18 @@ namespace Emby.Server.Implementations.Session
                 throw new ArgumentNullException(nameof(itemId));
             }
 
-            //var item = _libraryManager.GetItemById(new Guid(itemId));
+            var item = _libraryManager.GetItemById(new Guid(itemId));
 
-            //var info = GetItemInfo(item, null, null);
+            var info = GetItemInfo(item, null);
 
-            //ReportNowViewingItem(sessionId, info);
+            ReportNowViewingItem(sessionId, info);
         }
 
         public void ReportNowViewingItem(string sessionId, BaseItemDto item)
         {
-            //var session = GetSession(sessionId);
+            var session = GetSession(sessionId);
 
-            //session.NowViewingItem = item;
+            session.NowViewingItem = item;
         }
 
         public void ReportTranscodingInfo(string deviceId, TranscodingInfo info)

+ 18 - 0
MediaBrowser.Api/Session/SessionsService.cs

@@ -230,6 +230,17 @@ namespace MediaBrowser.Api.Session
         public string Id { get; set; }
     }
 
+    [Route("/Sessions/Viewing", "POST", Summary = "Reports that a session is viewing an item")]
+    [Authenticated]
+    public class ReportViewing : IReturnVoid
+    {
+        [ApiMember(Name = "SessionId", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")]
+        public string SessionId { get; set; }
+
+        [ApiMember(Name = "ItemId", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
+        public string ItemId { get; set; }
+    }
+
     [Route("/Sessions/Logout", "POST", Summary = "Reports that a session has ended")]
     [Authenticated]
     public class ReportSessionEnded : IReturnVoid
@@ -536,5 +547,12 @@ namespace MediaBrowser.Api.Session
 
             _sessionManager.ReportCapabilities(request.Id, request);
         }
+
+        public void Post(ReportViewing request)
+        {
+            request.SessionId = GetSession(_sessionContext).Id;
+
+            _sessionManager.ReportNowViewingItem(request.SessionId, request.ItemId);
+        }
     }
 }

+ 2 - 0
MediaBrowser.Controller/Session/SessionInfo.cs

@@ -106,6 +106,8 @@ namespace MediaBrowser.Controller.Session
 
         public BaseItem FullNowPlayingItem { get; set; }
 
+        public BaseItemDto NowViewingItem { get; set; }
+
         /// <summary>
         /// Gets or sets the device id.
         /// </summary>