Pārlūkot izejas kodu

resolve issue with querying by multiple item ids

Luke Pulverenti 9 gadi atpakaļ
vecāks
revīzija
9b339d7cae

+ 6 - 6
Emby.Drawing/ImageMagick/StripCollageBuilder.cs

@@ -295,9 +295,9 @@ namespace Emby.Drawing.ImageMagick
                 wand.OpenImage("gradient:#111111-#111111");
                 using (var draw = new DrawingWand())
                 {
-                    var iSlice = Convert.ToInt32(width * .1166666667 * 2);
+                    var iSlice = Convert.ToInt32(width * 0.24125);
                     int iTrans = Convert.ToInt32(height * .25);
-                    int iHeight = Convert.ToInt32(height * .62);
+                    int iHeight = Convert.ToInt32(height * .70);
                     var horizontalImagePadding = Convert.ToInt32(width * 0.0125);
 
                     foreach (var element in wandImages.ImageList)
@@ -339,7 +339,7 @@ namespace Emby.Drawing.ImageMagick
 
                                         wandList.AddImage(mwr);
                                         int ex = (int)(wand.CurrentImage.Width - mwg.CurrentImage.Width) / 2;
-                                        wand.CurrentImage.CompositeImage(wandList.AppendImages(true), CompositeOperator.AtopCompositeOp, ex, Convert.ToInt32(height * .085));
+                                        wand.CurrentImage.CompositeImage(wandList.AppendImages(true), CompositeOperator.AtopCompositeOp, ex, Convert.ToInt32(height * .045));
                                     }
                                 }
                             }
@@ -360,9 +360,9 @@ namespace Emby.Drawing.ImageMagick
                 wand.OpenImage("gradient:#111111-#111111");
                 using (var draw = new DrawingWand())
                 {
-                    var iSlice = Convert.ToInt32(width * .3);
+                    var iSlice = Convert.ToInt32(width * .32);
                     int iTrans = Convert.ToInt32(height * .25);
-                    int iHeight = Convert.ToInt32(height * .63);
+                    int iHeight = Convert.ToInt32(height * .68);
                     var horizontalImagePadding = Convert.ToInt32(width * 0.02);
 
                     foreach (var element in wandImages.ImageList)
@@ -404,7 +404,7 @@ namespace Emby.Drawing.ImageMagick
 
                                         wandList.AddImage(mwr);
                                         int ex = (int)(wand.CurrentImage.Width - mwg.CurrentImage.Width) / 2;
-                                        wand.CurrentImage.CompositeImage(wandList.AppendImages(true), CompositeOperator.AtopCompositeOp, ex, Convert.ToInt32(height * .07));
+                                        wand.CurrentImage.CompositeImage(wandList.AppendImages(true), CompositeOperator.AtopCompositeOp, ex, Convert.ToInt32(height * .03));
                                     }
                                 }
                             }

+ 1 - 1
MediaBrowser.Controller/Channels/Channel.cs

@@ -38,7 +38,7 @@ namespace MediaBrowser.Controller.Channels
             set { }
         }
 
-        public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             try
             {

+ 1 - 1
MediaBrowser.Controller/Channels/ChannelFolderItem.cs

@@ -44,7 +44,7 @@ namespace MediaBrowser.Controller.Channels
             return ExternalId;
         }
 
-        public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             try
             {

+ 14 - 5
MediaBrowser.Controller/Entities/Folder.cs

@@ -111,7 +111,7 @@ namespace MediaBrowser.Controller.Entities
         [IgnoreDataMember]
         protected virtual bool SupportsShortcutChildren
         {
-            get { return ConfigurationManager.Configuration.EnableWindowsShortcuts; }
+            get { return false; }
         }
 
         /// <summary>
@@ -1122,7 +1122,18 @@ namespace MediaBrowser.Controller.Entities
             return false;
         }
 
-        public virtual async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        public Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        {
+            if (query.ItemIds.Length > 0)
+            {
+                var specificItems = query.ItemIds.Select(LibraryManager.GetItemById).Where(i => i != null).ToList();
+                return Task.FromResult(PostFilterAndSort(specificItems, query));
+            }
+
+            return GetItemsInternal(query);
+        }
+
+        protected virtual async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             if (SourceType == SourceType.Channel)
             {
@@ -1175,9 +1186,7 @@ namespace MediaBrowser.Controller.Entities
                    : GetChildren(user, true).Where(filter);
             }
 
-            var result = PostFilterAndSort(items, query);
-
-            return result;
+            return PostFilterAndSort(items, query);
         }
 
         protected QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items, InternalItemsQuery query)

+ 1 - 1
MediaBrowser.Controller/Entities/TV/Season.cs

@@ -129,7 +129,7 @@ namespace MediaBrowser.Controller.Entities.TV
             get { return (IndexNumber ?? -1) == 0; }
         }
 
-        public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             var user = query.User;
 

+ 1 - 1
MediaBrowser.Controller/Entities/TV/Series.cs

@@ -157,7 +157,7 @@ namespace MediaBrowser.Controller.Entities.TV
             return GetSeasons(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
         }
 
-        public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             var user = query.User;
 

+ 2 - 1
MediaBrowser.Controller/Entities/UserRootFolder.cs

@@ -8,6 +8,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
+using MediaBrowser.Controller.Library;
 
 namespace MediaBrowser.Controller.Entities
 {
@@ -17,7 +18,7 @@ namespace MediaBrowser.Controller.Entities
     /// </summary>
     public class UserRootFolder : Folder
     {
-        public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             if (query.Recursive)
             {

+ 1 - 1
MediaBrowser.Controller/Entities/UserView.cs

@@ -45,7 +45,7 @@ namespace MediaBrowser.Controller.Entities
             return list;
         }
 
-        public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
         {
             var parent = this as Folder;
 

+ 0 - 2
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -196,8 +196,6 @@ namespace MediaBrowser.Model.Configuration
 
         public int SharingExpirationDays { get; set; }
 
-        public bool EnableWindowsShortcuts { get; set; }
-
         public bool EnableDateLastRefresh { get; set; }
 
         public string[] Migrations { get; set; }