diff --git a/MediaBrowser.Plugins.VuPlus/MediaBrowser.Plugins.VuPlus.csproj b/MediaBrowser.Plugins.VuPlus/MediaBrowser.Plugins.VuPlus.csproj index a05fa48..adc7ed1 100644 --- a/MediaBrowser.Plugins.VuPlus/MediaBrowser.Plugins.VuPlus.csproj +++ b/MediaBrowser.Plugins.VuPlus/MediaBrowser.Plugins.VuPlus.csproj @@ -2,8 +2,8 @@ netstandard2.0; - 3.1.9 - 3.1.9 + 3.2.0 + 3.2.0 @@ -17,8 +17,8 @@ - - + + diff --git a/MediaBrowser.Plugins.VuPlus/RecordingsChannel.cs b/MediaBrowser.Plugins.VuPlus/RecordingsChannel.cs index ad9ef31..0cf45d1 100644 --- a/MediaBrowser.Plugins.VuPlus/RecordingsChannel.cs +++ b/MediaBrowser.Plugins.VuPlus/RecordingsChannel.cs @@ -18,13 +18,41 @@ using MediaBrowser.Model.LiveTv; namespace MediaBrowser.Plugins.VuPlus { - public class RecordingsChannel : IChannel, IHasCacheKey, ISupportsDelete, ISupportsLatestMedia, ISupportsMediaProbe, IHasFolderAttributes + public class RecordingsChannel : IChannel, IHasCacheKey, ISupportsDelete, ISupportsLatestMedia, ISupportsMediaProbe, IHasFolderAttributes, IHasChangeEvent { public ILiveTvManager _liveTvManager; + public event EventHandler ContentChanged; + private Timer _updateTimer; + + public void OnContentChanged() + { + if (ContentChanged != null) + { + ContentChanged(this, EventArgs.Empty); + } + } + + private void OnUpdateTimerCallback(object state) + { + OnContentChanged(); + } + public RecordingsChannel(ILiveTvManager liveTvManager) { _liveTvManager = liveTvManager; + + var interval = TimeSpan.FromMinutes(15); + _updateTimer = new Timer(OnUpdateTimerCallback, null, interval, interval); + } + + public void Dispose() + { + if (_updateTimer != null) + { + _updateTimer.Dispose(); + _updateTimer = null; + } } public string Name @@ -153,13 +181,6 @@ namespace MediaBrowser.Plugins.VuPlus return GetService().DeleteRecordingAsync(id, cancellationToken); } - public async Task> GetLatestMedia(ChannelLatestMediaSearch request, CancellationToken cancellationToken) - { - var result = await GetChannelItems(new InternalChannelItemQuery(), i => true, cancellationToken).ConfigureAwait(false); - - return result.Items.OrderByDescending(i => i.DateCreated ?? DateTimeOffset.MinValue); - } - public Task GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(query.FolderId))