diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-11-23 11:01:42 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-11-23 11:01:42 -0500 |
| commit | 155c51908095177e42c31ebe5f13cf533318ad06 (patch) | |
| tree | 08c49689e3c7d3440062b09b223171c7c9ed4b40 /MediaBrowser.Controller | |
| parent | aeb4c520be178d39785b1122c4fc62a1249e4617 (diff) | |
fix merge conflits
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 130 |
1 files changed, 76 insertions, 54 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index f7439e9709..9ea1b64c0a 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -28,6 +28,7 @@ namespace MediaBrowser.Controller.Entities public List<Guid> ThemeSongIds { get; set; } public List<Guid> ThemeVideoIds { get; set; } + public List<string> Tags { get; set; } public Folder() { @@ -35,6 +36,7 @@ namespace MediaBrowser.Controller.Entities ThemeSongIds = new List<Guid>(); ThemeVideoIds = new List<Guid>(); + Tags = new List<string>(); } [IgnoreDataMember] @@ -149,15 +151,7 @@ namespace MediaBrowser.Controller.Entities await LibraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false); - if (!EnableNewFolderQuerying()) - { - await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false); - } - } - - private static bool EnableNewFolderQuerying() - { - return ConfigurationManager.Configuration.MigrationVersion >= 1; + await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false); } protected void AddChildrenInternal(IEnumerable<BaseItem> children) @@ -202,6 +196,21 @@ namespace MediaBrowser.Controller.Entities } } + [IgnoreDataMember] + public override string OfficialRatingForComparison + { + get + { + // Never want folders to be blocked by "BlockNotRated" + if (this is Series) + { + return base.OfficialRatingForComparison; + } + + return !string.IsNullOrWhiteSpace(base.OfficialRatingForComparison) ? base.OfficialRatingForComparison : "None"; + } + } + /// <summary> /// Removes the child. /// </summary> @@ -215,12 +224,7 @@ namespace MediaBrowser.Controller.Entities item.SetParent(null); - if (!EnableNewFolderQuerying()) - { - return ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken); - } - - return Task.FromResult(true); + return ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken); } /// <summary> @@ -453,25 +457,32 @@ namespace MediaBrowser.Controller.Entities { BaseItem currentChild; - if (currentChildren.TryGetValue(child.Id, out currentChild) && IsValidFromResolver(currentChild, child)) + if (currentChildren.TryGetValue(child.Id, out currentChild)) { - var currentChildLocationType = currentChild.LocationType; - if (currentChildLocationType != LocationType.Remote && - currentChildLocationType != LocationType.Virtual) + if (IsValidFromResolver(currentChild, child)) { - currentChild.DateModified = child.DateModified; - } - - await UpdateIsOffline(currentChild, false).ConfigureAwait(false); - validChildren.Add(currentChild); + var currentChildLocationType = currentChild.LocationType; + if (currentChildLocationType != LocationType.Remote && + currentChildLocationType != LocationType.Virtual) + { + currentChild.DateModified = child.DateModified; + } - continue; + await UpdateIsOffline(currentChild, false).ConfigureAwait(false); + validChildren.Add(currentChild); + } + else + { + newItems.Add(child); + validChildren.Add(child); + } + } + else + { + // Brand new item - needs to be added + newItems.Add(child); + validChildren.Add(child); } - - // Brand new item - needs to be added - child.SetParent(this); - newItems.Add(child); - validChildren.Add(child); } // If any items were added or removed.... @@ -497,6 +508,7 @@ namespace MediaBrowser.Controller.Entities } else { + await UpdateIsOffline(item, false).ConfigureAwait(false); actualRemovals.Add(item); } } @@ -507,11 +519,6 @@ namespace MediaBrowser.Controller.Entities foreach (var item in actualRemovals) { - Logger.Debug("Removed item: " + item.Path); - - item.SetParent(null); - item.IsOffline = false; - await LibraryManager.DeleteItem(item, new DeleteOptions { DeleteFileLocation = false }).ConfigureAwait(false); LibraryManager.ReportItemRemoved(item); } } @@ -520,10 +527,7 @@ namespace MediaBrowser.Controller.Entities AddChildrenInternal(newItems); - if (!EnableNewFolderQuerying()) - { - await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false); - } + await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false); } } @@ -717,7 +721,7 @@ namespace MediaBrowser.Controller.Entities return true; } - return false; + return ContainsPath(LibraryManager.GetVirtualFolders(), originalPath); } /// <summary> @@ -753,16 +757,19 @@ namespace MediaBrowser.Controller.Entities /// <returns>IEnumerable{BaseItem}.</returns> protected IEnumerable<BaseItem> GetCachedChildren() { - if (EnableNewFolderQuerying()) + if (ConfigurationManager.Configuration.DisableStartupScan) { - return ItemRepository.GetItemList(new InternalItemsQuery - { - ParentId = Id + return ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null); + //return ItemRepository.GetItems(new InternalItemsQuery + //{ + // ParentId = Id - }).Select(RetrieveChild).Where(i => i != null); + //}).Items.Select(RetrieveChild).Where(i => i != null); + } + else + { + return ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null); } - - return ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null); } private BaseItem RetrieveChild(BaseItem child) @@ -825,8 +832,20 @@ namespace MediaBrowser.Controller.Entities return UserViewBuilder.PostFilterAndSort(items, this, null, query, LibraryManager); } + /// <summary> + /// Gets allowed children of an item + /// </summary> + /// <param name="user">The user.</param> + /// <param name="includeLinkedChildren">if set to <c>true</c> [include linked children].</param> + /// <returns>IEnumerable{BaseItem}.</returns> + /// <exception cref="System.ArgumentNullException"></exception> public virtual IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) { + return GetChildren(user, includeLinkedChildren, false); + } + + internal IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren, bool includeHidden) + { if (user == null) { throw new ArgumentNullException(); @@ -837,7 +856,7 @@ namespace MediaBrowser.Controller.Entities var result = new Dictionary<Guid, BaseItem>(); - AddChildren(user, includeLinkedChildren, result, false, null); + AddChildren(user, includeLinkedChildren, result, includeHidden, false, null); return result.Values; } @@ -853,25 +872,29 @@ namespace MediaBrowser.Controller.Entities /// <param name="user">The user.</param> /// <param name="includeLinkedChildren">if set to <c>true</c> [include linked children].</param> /// <param name="result">The result.</param> + /// <param name="includeHidden">if set to <c>true</c> [include hidden].</param> /// <param name="recursive">if set to <c>true</c> [recursive].</param> /// <param name="filter">The filter.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - private void AddChildren(User user, bool includeLinkedChildren, Dictionary<Guid, BaseItem> result, bool recursive, Func<BaseItem, bool> filter) + private void AddChildren(User user, bool includeLinkedChildren, Dictionary<Guid, BaseItem> result, bool includeHidden, bool recursive, Func<BaseItem, bool> filter) { foreach (var child in GetEligibleChildrenForRecursiveChildren(user)) { if (child.IsVisible(user)) { - if (filter == null || filter(child)) + if (includeHidden || !child.IsHiddenFromUser(user)) { - result[child.Id] = child; + if (filter == null || filter(child)) + { + result[child.Id] = child; + } } if (recursive && child.IsFolder) { var folder = (Folder)child; - folder.AddChildren(user, includeLinkedChildren, result, true, filter); + folder.AddChildren(user, includeLinkedChildren, result, includeHidden, true, filter); } } } @@ -912,7 +935,7 @@ namespace MediaBrowser.Controller.Entities var result = new Dictionary<Guid, BaseItem>(); - AddChildren(user, true, result, true, filter); + AddChildren(user, true, result, false, true, filter); return result.Values; } @@ -1161,7 +1184,6 @@ namespace MediaBrowser.Controller.Entities Recursive = true, IsFolder = false, IsUnaired = false - }; if (!user.Configuration.DisplayMissingEpisodes) |
