瀏覽代碼

sync fixes

Luke Pulverenti 9 年之前
父節點
當前提交
78f5152ddb

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

@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Providers;
+using System;
+using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Querying;
 using MediaBrowser.Model.Users;
@@ -6,6 +7,7 @@ using MoreLinq;
 using System.Collections.Generic;
 using System.Linq;
 using System.Runtime.Serialization;
+using System.Threading.Tasks;
 using MediaBrowser.Model.Configuration;
 
 namespace MediaBrowser.Controller.Entities.TV
@@ -127,6 +129,30 @@ namespace MediaBrowser.Controller.Entities.TV
             get { return (IndexNumber ?? -1) == 0; }
         }
 
+        public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        {
+            var user = query.User;
+
+            Func<BaseItem, bool> filter = i => UserViewBuilder.Filter(i, user, query, UserDataManager, LibraryManager);
+
+            IEnumerable<BaseItem> items;
+
+            if (query.User == null)
+            {
+                items = query.Recursive
+                   ? GetRecursiveChildren(filter)
+                   : Children.Where(filter);
+            }
+            else
+            {
+                items = GetEpisodes(query.User).Where(filter);
+            }
+
+            var result = PostFilterAndSort(items, query);
+
+            return Task.FromResult(result);
+        }
+
         /// <summary>
         /// Gets the episodes.
         /// </summary>

+ 26 - 0
MediaBrowser.Controller/Entities/TV/Series.cs

@@ -157,6 +157,32 @@ namespace MediaBrowser.Controller.Entities.TV
             return GetSeasons(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
         }
 
+        public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
+        {
+            var user = query.User;
+
+            Func<BaseItem, bool> filter = i => UserViewBuilder.Filter(i, user, query, UserDataManager, LibraryManager);
+
+            IEnumerable<BaseItem> items;
+
+            if (query.User == null)
+            {
+                items = query.Recursive
+                   ? GetRecursiveChildren(filter)
+                   : Children.Where(filter);
+            }
+            else
+            {
+                items = query.Recursive
+                   ? GetRecursiveChildren(user, filter)
+                   : GetSeasons(user).Where(filter);
+            }
+
+            var result = PostFilterAndSort(items, query);
+
+            return Task.FromResult(result);
+        }
+
         public IEnumerable<Season> GetSeasons(User user, bool includeMissingSeasons, bool includeVirtualUnaired)
         {
             var seasons = base.GetChildren(user, true)

+ 6 - 0
MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs

@@ -338,6 +338,12 @@ namespace MediaBrowser.Server.Implementations.Sync
                 return series.GetEpisodes(user, false, false);
             }
 
+            var season = item as Season;
+            if (season != null)
+            {
+                return season.GetEpisodes(user, false, false);
+            }
+
             if (item.IsFolder)
             {
                 var folder = (Folder)item;