Selaa lähdekoodia

show library folder images

Luke Pulverenti 9 vuotta sitten
vanhempi
sitoutus
8f1899906b

+ 6 - 0
MediaBrowser.Model/Entities/VirtualFolderInfo.cs

@@ -32,5 +32,11 @@ namespace MediaBrowser.Model.Entities
         {
             Locations = new List<string>();
         }
+
+        /// <summary>
+        /// Gets or sets the primary image item identifier.
+        /// </summary>
+        /// <value>The primary image item identifier.</value>
+        public string PrimaryImageItemId { get; set; }
     }
 }

+ 25 - 9
MediaBrowser.Server.Implementations/Library/LibraryManager.cs

@@ -1171,18 +1171,34 @@ namespace MediaBrowser.Server.Implementations.Library
         /// <returns>IEnumerable{VirtualFolderInfo}.</returns>
         private IEnumerable<VirtualFolderInfo> GetView(string path)
         {
+            var topLibraryFolders = GetUserRootFolder().Children.ToList();
+
             return _fileSystem.GetDirectoryPaths(path)
-                .Select(dir => new VirtualFolderInfo
-                {
-                    Name = Path.GetFileName(dir),
+                .Select(dir => GetVirtualFolderInfo(dir, topLibraryFolders));
+        }
 
-                    Locations = Directory.EnumerateFiles(dir, "*.mblink", SearchOption.TopDirectoryOnly)
-                                .Select(_fileSystem.ResolveShortcut)
-                                .OrderBy(i => i)
-                                .ToList(),
+        private VirtualFolderInfo GetVirtualFolderInfo(string dir, List<BaseItem> collectionFolders)
+        {
+            var info = new VirtualFolderInfo
+            {
+                Name = Path.GetFileName(dir),
 
-                    CollectionType = GetCollectionType(dir)
-                });
+                Locations = Directory.EnumerateFiles(dir, "*.mblink", SearchOption.TopDirectoryOnly)
+                    .Select(_fileSystem.ResolveShortcut)
+                    .OrderBy(i => i)
+                    .ToList(),
+
+                CollectionType = GetCollectionType(dir)
+            };
+
+            var libraryFolder = collectionFolders.FirstOrDefault(i => string.Equals(i.Path, dir, StringComparison.OrdinalIgnoreCase));
+
+            if (libraryFolder != null && libraryFolder.HasImage(ImageType.Primary))
+            {
+                info.PrimaryImageItemId = libraryFolder.Id.ToString("N");
+            }
+
+            return info;
         }
 
         private string GetCollectionType(string path)