update recordings on schedule

This commit is contained in:
Luke Pulverenti
2019-05-09 13:14:09 -04:00
parent 46ea3e4c21
commit f7a7fced43
2 changed files with 33 additions and 12 deletions
@@ -2,8 +2,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;</TargetFrameworks> <TargetFrameworks>netstandard2.0;</TargetFrameworks>
<AssemblyVersion>3.1.9</AssemblyVersion> <AssemblyVersion>3.2.0</AssemblyVersion>
<FileVersion>3.1.9</FileVersion> <FileVersion>3.2.0</FileVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -17,8 +17,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="mediabrowser.server.core" Version="3.6.0.36-beta" /> <PackageReference Include="mediabrowser.server.core" Version="4.1.0.26" />
<PackageReference Include="System.Memory" Version="4.5.1" /> <PackageReference Include="System.Memory" Version="4.5.2" />
</ItemGroup> </ItemGroup>
</Project> </Project>
@@ -18,13 +18,41 @@ using MediaBrowser.Model.LiveTv;
namespace MediaBrowser.Plugins.VuPlus 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 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) public RecordingsChannel(ILiveTvManager liveTvManager)
{ {
_liveTvManager = 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 public string Name
@@ -153,13 +181,6 @@ namespace MediaBrowser.Plugins.VuPlus
return GetService().DeleteRecordingAsync(id, cancellationToken); return GetService().DeleteRecordingAsync(id, cancellationToken);
} }
public async Task<IEnumerable<ChannelItemInfo>> 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<ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken) public Task<ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
{ {
if (string.IsNullOrWhiteSpace(query.FolderId)) if (string.IsNullOrWhiteSpace(query.FolderId))