diff --git a/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs b/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs index 03daa4c2a7..51a1042418 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs @@ -10,6 +10,8 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading; +using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Controller.LiveTv; namespace MediaBrowser.Server.Implementations.EntryPoints { @@ -260,12 +262,17 @@ namespace MediaBrowser.Server.Implementations.EntryPoints private bool FilterItem(BaseItem item) { - if (item.LocationType == LocationType.Virtual) + if (!item.IsFolder && item.LocationType == LocationType.Virtual) { return false; } - - return !(item is IChannelItem); + + if (item is IItemByName && !(item is MusicArtist)) + { + return false; + } + + return !(item is IChannelItem) && !(item is ILiveTvItem); } /// diff --git a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs index 8d21d9a777..a9e4aaa0b6 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 e) @@ -311,25 +313,42 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications private readonly List _itemsAdded = new List(); 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 items; diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs index 434578718a..75247e95da 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs @@ -82,7 +82,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings UserAgent = UserAgent, CancellationToken = cancellationToken, // The data can be large so give it some extra time - TimeoutMs = 60000, + TimeoutMs = 120000, LogErrorResponseBody = true };