diff options
Diffstat (limited to 'MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs')
| -rw-r--r-- | MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs | 67 |
1 files changed, 51 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs index 2c3dc0e31..78791906a 100644 --- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs +++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs @@ -9,27 +9,15 @@ using MediaBrowser.Providers.Manager; using System.Linq; using MediaBrowser.Model.IO; using MediaBrowser.Model.Extensions; +using System.Collections.Generic; namespace MediaBrowser.Providers.BoxSets { public class BoxSetMetadataService : MetadataService<BoxSet, BoxSetInfo> { - protected override ItemUpdateType BeforeSaveInternal(BoxSet item, bool isFullRefresh, ItemUpdateType currentUpdateType) + protected override IList<BaseItem> GetChildrenForMetadataUpdates(BoxSet item) { - var updateType = base.BeforeSaveInternal(item, isFullRefresh, currentUpdateType); - - if (isFullRefresh || currentUpdateType > ItemUpdateType.None) - { - if (!item.LockedFields.Contains(MetadataFields.OfficialRating)) - { - if (item.UpdateRatingToContent()) - { - updateType = updateType | ItemUpdateType.MetadataEdit; - } - } - } - - return updateType; + return item.GetLinkedChildren(); } protected override void MergeData(MetadataResult<BoxSet> source, MetadataResult<BoxSet> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings) @@ -42,12 +30,59 @@ namespace MediaBrowser.Providers.BoxSets if (mergeMetadataSettings) { targetItem.LinkedChildren = sourceItem.LinkedChildren; - targetItem.Shares = sourceItem.Shares; } } + protected override ItemUpdateType BeforeSaveInternal(BoxSet item, bool isFullRefresh, ItemUpdateType currentUpdateType) + { + var updateType = base.BeforeSaveInternal(item, isFullRefresh, currentUpdateType); + + var libraryFolderIds = item.GetLibraryFolderIds(); + + var itemLibraryFolderIds = item.LibraryFolderIds; + if (itemLibraryFolderIds == null || !libraryFolderIds.SequenceEqual(itemLibraryFolderIds)) + { + item.LibraryFolderIds = libraryFolderIds; + updateType |= ItemUpdateType.MetadataImport; + } + + return updateType; + } + public BoxSetMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, IUserDataManager userDataManager, ILibraryManager libraryManager) : base(serverConfigurationManager, logger, providerManager, fileSystem, userDataManager, libraryManager) { } + + protected override bool EnableUpdatingGenresFromChildren + { + get + { + return true; + } + } + + protected override bool EnableUpdatingOfficialRatingFromChildren + { + get + { + return true; + } + } + + protected override bool EnableUpdatingStudiosFromChildren + { + get + { + return true; + } + } + + protected override bool EnableUpdatingPremiereDateFromChildren + { + get + { + return true; + } + } } } |
