From 31f285480ae3b4573d2ddc18b50a8ed8b4160a41 Mon Sep 17 00:00:00 2001 From: Patrick Barron Date: Thu, 15 Feb 2024 12:53:55 -0500 Subject: Move RecordingNotifier to recordings folder --- src/Jellyfin.LiveTv/RecordingNotifier.cs | 96 ---------------------- .../Recordings/RecordingNotifier.cs | 96 ++++++++++++++++++++++ 2 files changed, 96 insertions(+), 96 deletions(-) delete mode 100644 src/Jellyfin.LiveTv/RecordingNotifier.cs create mode 100644 src/Jellyfin.LiveTv/Recordings/RecordingNotifier.cs (limited to 'src') diff --git a/src/Jellyfin.LiveTv/RecordingNotifier.cs b/src/Jellyfin.LiveTv/RecordingNotifier.cs deleted file mode 100644 index 226d525e7..000000000 --- a/src/Jellyfin.LiveTv/RecordingNotifier.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Jellyfin.Data.Enums; -using Jellyfin.Data.Events; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Session; -using MediaBrowser.Model.Session; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; - -namespace Jellyfin.LiveTv -{ - /// - /// responsible for notifying users when a LiveTV recording is completed. - /// - public sealed class RecordingNotifier : IHostedService - { - private readonly ILogger _logger; - private readonly ISessionManager _sessionManager; - private readonly IUserManager _userManager; - private readonly ILiveTvManager _liveTvManager; - - /// - /// Initializes a new instance of the class. - /// - /// The . - /// The . - /// The . - /// The . - public RecordingNotifier( - ILogger logger, - ISessionManager sessionManager, - IUserManager userManager, - ILiveTvManager liveTvManager) - { - _logger = logger; - _sessionManager = sessionManager; - _userManager = userManager; - _liveTvManager = liveTvManager; - } - - /// - public Task StartAsync(CancellationToken cancellationToken) - { - _liveTvManager.TimerCancelled += OnLiveTvManagerTimerCancelled; - _liveTvManager.SeriesTimerCancelled += OnLiveTvManagerSeriesTimerCancelled; - _liveTvManager.TimerCreated += OnLiveTvManagerTimerCreated; - _liveTvManager.SeriesTimerCreated += OnLiveTvManagerSeriesTimerCreated; - - return Task.CompletedTask; - } - - /// - public Task StopAsync(CancellationToken cancellationToken) - { - _liveTvManager.TimerCancelled -= OnLiveTvManagerTimerCancelled; - _liveTvManager.SeriesTimerCancelled -= OnLiveTvManagerSeriesTimerCancelled; - _liveTvManager.TimerCreated -= OnLiveTvManagerTimerCreated; - _liveTvManager.SeriesTimerCreated -= OnLiveTvManagerSeriesTimerCreated; - - return Task.CompletedTask; - } - - private async void OnLiveTvManagerSeriesTimerCreated(object? sender, GenericEventArgs e) - => await SendMessage(SessionMessageType.SeriesTimerCreated, e.Argument).ConfigureAwait(false); - - private async void OnLiveTvManagerTimerCreated(object? sender, GenericEventArgs e) - => await SendMessage(SessionMessageType.TimerCreated, e.Argument).ConfigureAwait(false); - - private async void OnLiveTvManagerSeriesTimerCancelled(object? sender, GenericEventArgs e) - => await SendMessage(SessionMessageType.SeriesTimerCancelled, e.Argument).ConfigureAwait(false); - - private async void OnLiveTvManagerTimerCancelled(object? sender, GenericEventArgs e) - => await SendMessage(SessionMessageType.TimerCancelled, e.Argument).ConfigureAwait(false); - - private async Task SendMessage(SessionMessageType name, TimerEventInfo info) - { - var users = _userManager.Users - .Where(i => i.HasPermission(PermissionKind.EnableLiveTvAccess)) - .Select(i => i.Id) - .ToList(); - - try - { - await _sessionManager.SendMessageToUserSessions(users, name, info, CancellationToken.None).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error sending message"); - } - } - } -} diff --git a/src/Jellyfin.LiveTv/Recordings/RecordingNotifier.cs b/src/Jellyfin.LiveTv/Recordings/RecordingNotifier.cs new file mode 100644 index 000000000..e63afa626 --- /dev/null +++ b/src/Jellyfin.LiveTv/Recordings/RecordingNotifier.cs @@ -0,0 +1,96 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Jellyfin.Data.Enums; +using Jellyfin.Data.Events; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Session; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Jellyfin.LiveTv.Recordings +{ + /// + /// responsible for notifying users when a LiveTV recording is completed. + /// + public sealed class RecordingNotifier : IHostedService + { + private readonly ILogger _logger; + private readonly ISessionManager _sessionManager; + private readonly IUserManager _userManager; + private readonly ILiveTvManager _liveTvManager; + + /// + /// Initializes a new instance of the class. + /// + /// The . + /// The . + /// The . + /// The . + public RecordingNotifier( + ILogger logger, + ISessionManager sessionManager, + IUserManager userManager, + ILiveTvManager liveTvManager) + { + _logger = logger; + _sessionManager = sessionManager; + _userManager = userManager; + _liveTvManager = liveTvManager; + } + + /// + public Task StartAsync(CancellationToken cancellationToken) + { + _liveTvManager.TimerCancelled += OnLiveTvManagerTimerCancelled; + _liveTvManager.SeriesTimerCancelled += OnLiveTvManagerSeriesTimerCancelled; + _liveTvManager.TimerCreated += OnLiveTvManagerTimerCreated; + _liveTvManager.SeriesTimerCreated += OnLiveTvManagerSeriesTimerCreated; + + return Task.CompletedTask; + } + + /// + public Task StopAsync(CancellationToken cancellationToken) + { + _liveTvManager.TimerCancelled -= OnLiveTvManagerTimerCancelled; + _liveTvManager.SeriesTimerCancelled -= OnLiveTvManagerSeriesTimerCancelled; + _liveTvManager.TimerCreated -= OnLiveTvManagerTimerCreated; + _liveTvManager.SeriesTimerCreated -= OnLiveTvManagerSeriesTimerCreated; + + return Task.CompletedTask; + } + + private async void OnLiveTvManagerSeriesTimerCreated(object? sender, GenericEventArgs e) + => await SendMessage(SessionMessageType.SeriesTimerCreated, e.Argument).ConfigureAwait(false); + + private async void OnLiveTvManagerTimerCreated(object? sender, GenericEventArgs e) + => await SendMessage(SessionMessageType.TimerCreated, e.Argument).ConfigureAwait(false); + + private async void OnLiveTvManagerSeriesTimerCancelled(object? sender, GenericEventArgs e) + => await SendMessage(SessionMessageType.SeriesTimerCancelled, e.Argument).ConfigureAwait(false); + + private async void OnLiveTvManagerTimerCancelled(object? sender, GenericEventArgs e) + => await SendMessage(SessionMessageType.TimerCancelled, e.Argument).ConfigureAwait(false); + + private async Task SendMessage(SessionMessageType name, TimerEventInfo info) + { + var users = _userManager.Users + .Where(i => i.HasPermission(PermissionKind.EnableLiveTvAccess)) + .Select(i => i.Id) + .ToList(); + + try + { + await _sessionManager.SendMessageToUserSessions(users, name, info, CancellationToken.None).ConfigureAwait(false); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error sending message"); + } + } + } +} -- cgit v1.2.3