diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-11-07 20:17:32 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-11-07 20:17:32 -0500 |
| commit | 5eb86b686b61f0fab4214b76aebf1a446e5c9b5f (patch) | |
| tree | 9a0806eb325460ba8a722e014da3e1303f24ef46 | |
| parent | 8f239f0cde918fc9a5db1ce0039c4b3aa9fbfc3f (diff) | |
update notifications
| -rw-r--r-- | MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs index 8d21d9a77..a9e4aaa0b 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs @@ -22,6 +22,8 @@ using System.Globalization; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Controller.Channels; +using MediaBrowser.Controller.LiveTv; namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications { @@ -77,9 +79,9 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications _appHost.HasPendingRestartChanged += _appHost_HasPendingRestartChanged; _appHost.HasUpdateAvailableChanged += _appHost_HasUpdateAvailableChanged; _appHost.ApplicationUpdated += _appHost_ApplicationUpdated; - _deviceManager.CameraImageUploaded +=_deviceManager_CameraImageUploaded; + _deviceManager.CameraImageUploaded += _deviceManager_CameraImageUploaded; - _userManager.UserLockedOut += _userManager_UserLockedOut; + _userManager.UserLockedOut += _userManager_UserLockedOut; } async void _userManager_UserLockedOut(object sender, GenericEventArgs<User> e) @@ -311,25 +313,42 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications private readonly List<BaseItem> _itemsAdded = new List<BaseItem>(); void _libraryManager_ItemAdded(object sender, ItemChangeEventArgs e) { - if (e.Item.LocationType == LocationType.FileSystem && !e.Item.IsFolder) + if (!FilterItem(e.Item)) { - lock (_libraryChangedSyncLock) + return; + } + + lock (_libraryChangedSyncLock) + { + if (LibraryUpdateTimer == null) { - if (LibraryUpdateTimer == null) - { - LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, 5000, - Timeout.Infinite); - } - else - { - LibraryUpdateTimer.Change(5000, Timeout.Infinite); - } - - _itemsAdded.Add(e.Item); + LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, 5000, + Timeout.Infinite); } + else + { + LibraryUpdateTimer.Change(5000, Timeout.Infinite); + } + + _itemsAdded.Add(e.Item); } } + private bool FilterItem(BaseItem item) + { + if (!item.IsFolder && item.LocationType == LocationType.Virtual) + { + return false; + } + + if (item is IItemByName && !(item is MusicArtist)) + { + return false; + } + + return !(item is IChannelItem) && !(item is ILiveTvItem); + } + private async void LibraryUpdateTimerCallback(object state) { List<BaseItem> items; |
