소스 검색

fix dlna latest lists

Luke Pulverenti 9 년 전
부모
커밋
b445948ebf

+ 4 - 6
MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs

@@ -128,11 +128,6 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
 
         private void AddIpv4Option(HttpWebRequest request, HttpRequestOptions options)
         {
-            if (!options.PreferIpv4)
-            {
-                return;
-            }
-
             request.ServicePoint.BindIPEndPointDelegate = (servicePount, remoteEndPoint, retryCount) =>
             {
                 if (remoteEndPoint.AddressFamily == AddressFamily.InterNetwork)
@@ -150,7 +145,10 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
 
             if (httpWebRequest != null)
             {
-                AddIpv4Option(httpWebRequest, options);
+                if (options.PreferIpv4)
+                {
+                    AddIpv4Option(httpWebRequest, options);
+                }
 
                 AddRequestHeaders(httpWebRequest, options);
 

+ 14 - 4
MediaBrowser.Controller/Entities/UserViewBuilder.cs

@@ -550,7 +550,7 @@ namespace MediaBrowser.Controller.Entities
             query.Limit = GetSpecialItemsLimit();
             query.IncludeItemTypes = new[] { typeof(Movie).Name };
 
-            return _libraryManager.GetItemsResult(query);
+            return ConvertToResult(_libraryManager.GetItemList(query));
         }
 
         private QueryResult<BaseItem> GetMovieResume(Folder parent, User user, InternalItemsQuery query)
@@ -564,7 +564,17 @@ namespace MediaBrowser.Controller.Entities
             query.Limit = GetSpecialItemsLimit();
             query.IncludeItemTypes = new[] { typeof(Movie).Name };
 
-            return _libraryManager.GetItemsResult(query);
+            return ConvertToResult(_libraryManager.GetItemList(query));
+        }
+
+        private QueryResult<BaseItem> ConvertToResult(IEnumerable<BaseItem> items)
+        {
+            var arr = items.ToArray();
+            return new QueryResult<BaseItem>
+            {
+                Items = arr,
+                TotalRecordCount = arr.Length
+            };
         }
 
         private async Task<QueryResult<BaseItem>> GetMovieGenres(Folder parent, User user, InternalItemsQuery query)
@@ -667,7 +677,7 @@ namespace MediaBrowser.Controller.Entities
             query.IncludeItemTypes = new[] { typeof(Episode).Name };
             query.ExcludeLocationTypes = new[] { LocationType.Virtual };
 
-            return _libraryManager.GetItemsResult(query);
+            return ConvertToResult(_libraryManager.GetItemList(query));
         }
 
         private QueryResult<BaseItem> GetTvNextUp(Folder parent, InternalItemsQuery query)
@@ -696,7 +706,7 @@ namespace MediaBrowser.Controller.Entities
             query.Limit = GetSpecialItemsLimit();
             query.IncludeItemTypes = new[] { typeof(Episode).Name };
 
-            return _libraryManager.GetItemsResult(query);
+            return ConvertToResult(_libraryManager.GetItemList(query));
         }
 
         private QueryResult<BaseItem> GetTvSeries(Folder parent, User user, InternalItemsQuery query)

+ 10 - 0
MediaBrowser.Server.Implementations/Library/LibraryManager.cs

@@ -1277,6 +1277,16 @@ namespace MediaBrowser.Server.Implementations.Library
 
         public IEnumerable<BaseItem> GetItemList(InternalItemsQuery query)
         {
+            if (query.Recursive && query.ParentId.HasValue)
+            {
+                var parent = GetItemById(query.ParentId.Value);
+                if (parent != null)
+                {
+                    SetTopParentIdsOrAncestors(query, new List<BaseItem> { parent });
+                    query.ParentId = null;
+                }
+            }
+
             if (query.User != null)
             {
                 AddUserToQuery(query, query.User);