aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Playlists
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-07-03 13:16:01 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-07-03 13:16:01 -0400
commit6ea8e7868df95cea54216a5dbf927b3b4069bde5 (patch)
treec9e920a547ea696b7dce06cf21cf3398a653bde4 /MediaBrowser.Providers/Playlists
parentc4a271534e603224ece366dcfa976012d5750fbe (diff)
add live stream params
Diffstat (limited to 'MediaBrowser.Providers/Playlists')
-rw-r--r--MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs32
1 files changed, 30 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
index 235fd8c8a7..c4ea106fb4 100644
--- a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
+++ b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Configuration;
+using System;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.Providers;
@@ -6,7 +7,7 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Manager;
using System.Collections.Generic;
-
+using System.Linq;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
@@ -33,6 +34,33 @@ namespace MediaBrowser.Providers.Playlists
}
}
+ protected override ItemUpdateType BeforeSave(Playlist item, bool isFullRefresh, ItemUpdateType currentUpdateType)
+ {
+ var updateType = base.BeforeSave(item, isFullRefresh, currentUpdateType);
+
+ if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
+ {
+ if (!item.IsLocked && !item.LockedFields.Contains(MetadataFields.Genres))
+ {
+ var items = item.GetLinkedChildren()
+ .ToList();
+
+ var currentList = item.Genres.ToList();
+
+ item.Genres = items.SelectMany(i => i.Genres)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .ToList();
+
+ if (currentList.Count != item.Genres.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Genres.OrderBy(i => i), StringComparer.OrdinalIgnoreCase))
+ {
+ updateType = updateType | ItemUpdateType.MetadataEdit;
+ }
+ }
+ }
+
+ return updateType;
+ }
+
public PlaylistMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, IUserDataManager userDataManager, ILibraryManager libraryManager) : base(serverConfigurationManager, logger, providerManager, fileSystem, userDataManager, libraryManager)
{
}