update recordings on schedule
This commit is contained in:
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user