diff options
Diffstat (limited to 'Emby.Server.Implementations')
21 files changed, 83 insertions, 498 deletions
diff --git a/Emby.Server.Implementations/Activity/ActivityManager.cs b/Emby.Server.Implementations/Activity/ActivityManager.cs index b0c841397..0bb44a9d5 100644 --- a/Emby.Server.Implementations/Activity/ActivityManager.cs +++ b/Emby.Server.Implementations/Activity/ActivityManager.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Library; using MediaBrowser.Model.Activity; using MediaBrowser.Model.Events; using Microsoft.Extensions.Logging; @@ -30,7 +29,7 @@ namespace Emby.Server.Implementations.Activity _repo.Create(entry); - EventHelper.FireEventIfNotNull(EntryCreated, this, new GenericEventArgs<ActivityLogEntry>(entry), _logger); + EntryCreated?.Invoke(this, new GenericEventArgs<ActivityLogEntry>(entry)); } public QueryResult<ActivityLogEntry> GetActivityLogEntries(DateTime? minDate, bool? hasUserId, int? startIndex, int? limit) diff --git a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs index fddf19893..bc5168fe8 100644 --- a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs +++ b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs @@ -283,12 +283,11 @@ namespace Emby.Server.Implementations.AppBase validatingStore.Validate(currentConfiguration, configuration); } - EventHelper.FireEventIfNotNull(NamedConfigurationUpdating, this, new ConfigurationUpdateEventArgs + NamedConfigurationUpdating?.Invoke( this, new ConfigurationUpdateEventArgs { Key = key, NewConfiguration = configuration - - }, Logger); + }); _configurations.AddOrUpdate(key, configuration, (k, v) => configuration); @@ -305,12 +304,11 @@ namespace Emby.Server.Implementations.AppBase protected virtual void OnNamedConfigurationUpdated(string key, object configuration) { - EventHelper.FireEventIfNotNull(NamedConfigurationUpdated, this, new ConfigurationUpdateEventArgs + NamedConfigurationUpdated?.Invoke(this, new ConfigurationUpdateEventArgs { Key = key, NewConfiguration = configuration - - }, Logger); + }); } public Type GetConfigurationType(string key) diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index ff6586ac1..236851968 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -966,9 +966,6 @@ namespace Emby.Server.Implementations DeviceManager = new DeviceManager(AuthenticationRepository, JsonSerializer, LibraryManager, LocalizationManager, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LoggerFactory.CreateLogger("DeviceManager"), NetworkManager); RegisterSingleInstance(DeviceManager); - var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer); - RegisterSingleInstance<INewsService>(newsService); - MediaSourceManager = new MediaSourceManager(ItemRepository, ApplicationPaths, LocalizationManager, UserManager, LibraryManager, LoggerFactory.CreateLogger("MediaSourceManager"), JsonSerializer, FileSystemManager, UserDataManager, TimerFactory, () => MediaEncoder); RegisterSingleInstance(MediaSourceManager); @@ -2268,7 +2265,7 @@ namespace Emby.Server.Implementations if (fireEvent) { - EventHelper.FireEventIfNotNull(HasUpdateAvailableChanged, this, EventArgs.Empty, Logger); + HasUpdateAvailableChanged?.Invoke(this, EventArgs.Empty); } } } @@ -2384,11 +2381,10 @@ namespace Emby.Server.Implementations { Logger.LogInformation("Application has been updated to version {0}", package.versionStr); - EventHelper.FireEventIfNotNull(ApplicationUpdated, this, new GenericEventArgs<PackageVersionInfo> + ApplicationUpdated?.Invoke(this, new GenericEventArgs<PackageVersionInfo> { Argument = package - - }, Logger); + }); NotifyPendingRestart(); } diff --git a/Emby.Server.Implementations/Collections/CollectionManager.cs b/Emby.Server.Implementations/Collections/CollectionManager.cs index d1afb0712..d1d793136 100644 --- a/Emby.Server.Implementations/Collections/CollectionManager.cs +++ b/Emby.Server.Implementations/Collections/CollectionManager.cs @@ -155,12 +155,11 @@ namespace Emby.Server.Implementations.Collections _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.High); } - EventHelper.FireEventIfNotNull(CollectionCreated, this, new CollectionCreatedEventArgs + CollectionCreated?.Invoke(this, new CollectionCreatedEventArgs { Collection = collection, Options = options - - }, _logger); + }); return collection; } @@ -230,12 +229,11 @@ namespace Emby.Server.Implementations.Collections if (fireEvent) { - EventHelper.FireEventIfNotNull(ItemsAddedToCollection, this, new CollectionModifiedEventArgs + ItemsAddedToCollection?.Invoke(this, new CollectionModifiedEventArgs { Collection = collection, ItemsChanged = itemList - - }, _logger); + }); } } } @@ -288,12 +286,11 @@ namespace Emby.Server.Implementations.Collections ForceSave = true }, RefreshPriority.High); - EventHelper.FireEventIfNotNull(ItemsRemovedFromCollection, this, new CollectionModifiedEventArgs + ItemsRemovedFromCollection?.Invoke(this, new CollectionModifiedEventArgs { Collection = collection, ItemsChanged = itemList - - }, _logger); + }); } public IEnumerable<BaseItem> CollapseItemsWithinBoxSets(IEnumerable<BaseItem> items, User user) diff --git a/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs b/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs index 26a7c421f..015421197 100644 --- a/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs +++ b/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs @@ -1,22 +1,15 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; using Emby.Server.Implementations.AppBase; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Events; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; -using MediaBrowser.Model.Extensions; namespace Emby.Server.Implementations.Configuration { @@ -143,7 +136,7 @@ namespace Emby.Server.Implementations.Configuration ValidateMetadataPath(newConfig); ValidateSslCertificate(newConfig); - EventHelper.FireEventIfNotNull(ConfigurationUpdating, this, new GenericEventArgs<ServerConfiguration> { Argument = newConfig }, Logger); + ConfigurationUpdating?.Invoke(this, new GenericEventArgs<ServerConfiguration> { Argument = newConfig }); base.ReplaceConfiguration(newConfiguration); } diff --git a/Emby.Server.Implementations/Devices/DeviceManager.cs b/Emby.Server.Implementations/Devices/DeviceManager.cs index 82df96d8b..f5314df6e 100644 --- a/Emby.Server.Implementations/Devices/DeviceManager.cs +++ b/Emby.Server.Implementations/Devices/DeviceManager.cs @@ -1,5 +1,4 @@ using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Net; using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Library; @@ -254,14 +253,14 @@ namespace Emby.Server.Implementations.Devices if (CameraImageUploaded != null) { - EventHelper.FireEventIfNotNull(CameraImageUploaded, this, new GenericEventArgs<CameraImageUploadInfo> + CameraImageUploaded?.Invoke(this, new GenericEventArgs<CameraImageUploadInfo> { Argument = new CameraImageUploadInfo { Device = device, FileInfo = file } - }, _logger); + }); } } diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs index 704b7f8a6..69ca0f85b 100644 --- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -8,7 +8,6 @@ using System.Globalization; using System.IO; using System.Linq; using System.Reflection; -using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -16,17 +15,12 @@ using Emby.Server.Implementations.Services; using MediaBrowser.Common.Net; using MediaBrowser.Common.Security; using MediaBrowser.Controller; -using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.Extensions; -using MediaBrowser.Model.IO; -using MediaBrowser.Model.Net; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Services; -using MediaBrowser.Model.System; using MediaBrowser.Model.Text; using System.Net.Sockets; using Emby.Server.Implementations.Net; -using MediaBrowser.Common.Events; using MediaBrowser.Model.Events; namespace Emby.Server.Implementations.HttpServer @@ -184,7 +178,7 @@ namespace Emby.Server.Implementations.HttpServer if (WebSocketConnected != null) { - EventHelper.FireEventIfNotNull(WebSocketConnected, this, new GenericEventArgs<IWebSocketConnection>(connection), _logger); + WebSocketConnected?.Invoke(this, new GenericEventArgs<IWebSocketConnection>(connection)); } } diff --git a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs index 8b5dfd444..914fa9dbc 100644 --- a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs +++ b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs @@ -1,5 +1,4 @@ using System.Text; -using MediaBrowser.Common.Events; using MediaBrowser.Controller.Net; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Net; @@ -118,7 +117,7 @@ namespace Emby.Server.Implementations.HttpServer void socket_Closed(object sender, EventArgs e) { - EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger); + Closed?.Invoke(this, EventArgs.Empty); } /// <summary> diff --git a/Emby.Server.Implementations/IO/FileRefresher.cs b/Emby.Server.Implementations/IO/FileRefresher.cs index df484d04c..34c711324 100644 --- a/Emby.Server.Implementations/IO/FileRefresher.cs +++ b/Emby.Server.Implementations/IO/FileRefresher.cs @@ -2,14 +2,9 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading; -using System.Threading.Tasks; using MediaBrowser.Model.IO; -using MediaBrowser.Common.Events; -using MediaBrowser.Common.Progress; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Extensions; using Microsoft.Extensions.Logging; @@ -133,7 +128,7 @@ namespace Emby.Server.Implementations.IO Logger.LogDebug("Timer stopped."); DisposeTimer(); - EventHelper.FireEventIfNotNull(Completed, this, EventArgs.Empty, Logger); + Completed?.Invoke(this, EventArgs.Empty); try { diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs index 62371799b..27ba32c0c 100644 --- a/Emby.Server.Implementations/Library/UserDataManager.cs +++ b/Emby.Server.Implementations/Library/UserDataManager.cs @@ -1,7 +1,5 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Dto; @@ -11,7 +9,6 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Threading; -using System.Threading.Tasks; using MediaBrowser.Controller.Dto; using System.Globalization; @@ -77,15 +74,14 @@ namespace Emby.Server.Implementations.Library var cacheKey = GetCacheKey(userId, item.Id); _userData.AddOrUpdate(cacheKey, userData, (k, v) => userData); - EventHelper.FireEventIfNotNull(UserDataSaved, this, new UserDataSaveEventArgs + UserDataSaved?.Invoke(this, new UserDataSaveEventArgs { Keys = keys, UserData = userData, SaveReason = reason, UserId = user.Id, Item = item - - }, _logger); + }); } /// <summary> diff --git a/Emby.Server.Implementations/Library/UserManager.cs b/Emby.Server.Implementations/Library/UserManager.cs index ae3577b7d..679116fc0 100644 --- a/Emby.Server.Implementations/Library/UserManager.cs +++ b/Emby.Server.Implementations/Library/UserManager.cs @@ -2,7 +2,6 @@ using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; @@ -135,7 +134,7 @@ namespace Emby.Server.Implementations.Library /// <param name="user">The user.</param> private void OnUserUpdated(User user) { - EventHelper.FireEventIfNotNull(UserUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserUpdated?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } #endregion @@ -150,7 +149,7 @@ namespace Emby.Server.Implementations.Library /// <param name="user">The user.</param> private void OnUserDeleted(User user) { - EventHelper.FireEventIfNotNull(UserDeleted, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserDeleted?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } #endregion @@ -471,10 +470,7 @@ namespace Emby.Server.Implementations.Library if (fireLockout) { - if (UserLockedOut != null) - { - EventHelper.FireEventIfNotNull(UserLockedOut, this, new GenericEventArgs<User>(user), _logger); - } + UserLockedOut?.Invoke(this, new GenericEventArgs<User>(user)); } } } @@ -820,7 +816,7 @@ namespace Emby.Server.Implementations.Library UpdateUser(user); - EventHelper.FireEventIfNotNull(UserPasswordChanged, this, new GenericEventArgs<User>(user), _logger); + UserPasswordChanged?.Invoke(this, new GenericEventArgs<User>(user)); } public void ChangeEasyPassword(User user, string newPassword, string newPasswordHash) @@ -844,7 +840,7 @@ namespace Emby.Server.Implementations.Library UpdateUser(user); - EventHelper.FireEventIfNotNull(UserPasswordChanged, this, new GenericEventArgs<User>(user), _logger); + UserPasswordChanged?.Invoke(this, new GenericEventArgs<User>(user)); } /// <summary> @@ -1088,7 +1084,7 @@ namespace Emby.Server.Implementations.Library if (fireEvent) { - EventHelper.FireEventIfNotNull(UserPolicyUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserPolicyUpdated?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } } @@ -1183,7 +1179,7 @@ namespace Emby.Server.Implementations.Library if (fireEvent) { - EventHelper.FireEventIfNotNull(UserConfigurationUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserConfigurationUpdated?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } } } diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index ef96510bd..59f9fe86f 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -1,9 +1,16 @@ -using MediaBrowser.Common; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Xml; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Net; -using MediaBrowser.Common.Security; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.MediaEncoding; @@ -14,25 +21,13 @@ using MediaBrowser.Model.Events; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; using MediaBrowser.Model.IO; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Progress; using MediaBrowser.Controller; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Diagnostics; using MediaBrowser.Model.System; diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs index 5618579f6..76a044c02 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs @@ -1,15 +1,11 @@ -using MediaBrowser.Common.Events; +using System; +using System.Collections.Concurrent; +using System.Globalization; +using System.Linq; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.Events; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Concurrent; -using System.Globalization; -using System.Linq; -using System.Threading; - -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Threading; @@ -122,7 +118,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV if (startDate < now) { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs<TimerInfo> { Argument = item }, base.Logger); + TimerFired?.Invoke(this, new GenericEventArgs<TimerInfo> { Argument = item }); return; } @@ -178,7 +174,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV var timer = GetAll().FirstOrDefault(i => string.Equals(i.Id, timerId, StringComparison.OrdinalIgnoreCase)); if (timer != null) { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs<TimerInfo> { Argument = timer }, base.Logger); + TimerFired?.Invoke(this, new GenericEventArgs<TimerInfo> { Argument = timer }); } } diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs index a4ffbd2fe..b597a935a 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs @@ -22,7 +22,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Security; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; @@ -144,13 +143,13 @@ namespace Emby.Server.Implementations.LiveTv { var timerId = e.Argument; - EventHelper.FireEventIfNotNull(TimerCancelled, this, new GenericEventArgs<TimerEventInfo> + TimerCancelled?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { Id = timerId } - }, _logger); + }); } private void EmbyTv_TimerCreated(object sender, GenericEventArgs<TimerInfo> e) @@ -158,14 +157,14 @@ namespace Emby.Server.Implementations.LiveTv var timer = e.Argument; var service = sender as ILiveTvService; - EventHelper.FireEventIfNotNull(TimerCreated, this, new GenericEventArgs<TimerEventInfo> + TimerCreated?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(timer.ProgramId), Id = timer.Id } - }, _logger); + }); } public ITunerHost[] TunerHosts @@ -1734,13 +1733,13 @@ namespace Emby.Server.Implementations.LiveTv if (!(service is EmbyTV.EmbyTV)) { - EventHelper.FireEventIfNotNull(TimerCancelled, this, new GenericEventArgs<TimerEventInfo> + TimerCancelled?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { Id = id } - }, _logger); + }); } } @@ -1757,13 +1756,13 @@ namespace Emby.Server.Implementations.LiveTv await service.CancelSeriesTimerAsync(timer.ExternalId, CancellationToken.None).ConfigureAwait(false); - EventHelper.FireEventIfNotNull(SeriesTimerCancelled, this, new GenericEventArgs<TimerEventInfo> + SeriesTimerCancelled?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { Id = id } - }, _logger); + }); } public async Task<TimerInfoDto> GetTimer(string id, CancellationToken cancellationToken) @@ -2083,14 +2082,14 @@ namespace Emby.Server.Implementations.LiveTv if (!(service is EmbyTV.EmbyTV)) { - EventHelper.FireEventIfNotNull(TimerCreated, this, new GenericEventArgs<TimerEventInfo> + TimerCreated?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(info.ProgramId), Id = newTimerId } - }, _logger); + }); } } @@ -2123,14 +2122,14 @@ namespace Emby.Server.Implementations.LiveTv await service.CreateSeriesTimerAsync(info, cancellationToken).ConfigureAwait(false); } - EventHelper.FireEventIfNotNull(SeriesTimerCreated, this, new GenericEventArgs<TimerEventInfo> + SeriesTimerCreated?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(info.ProgramId), Id = newTimerId } - }, _logger); + }); } public async Task UpdateTimer(TimerInfoDto timer, CancellationToken cancellationToken) diff --git a/Emby.Server.Implementations/News/NewsEntryPoint.cs b/Emby.Server.Implementations/News/NewsEntryPoint.cs deleted file mode 100644 index ce6fe6630..000000000 --- a/Emby.Server.Implementations/News/NewsEntryPoint.cs +++ /dev/null @@ -1,279 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Notifications; -using MediaBrowser.Controller.Plugins; -using Microsoft.Extensions.Logging; -using MediaBrowser.Model.News; -using MediaBrowser.Model.Notifications; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using MediaBrowser.Common.Progress; -using MediaBrowser.Model.IO; -using MediaBrowser.Model.Threading; - -namespace Emby.Server.Implementations.News -{ - public class NewsEntryPoint : IServerEntryPoint - { - private ITimer _timer; - private readonly IHttpClient _httpClient; - private readonly IApplicationPaths _appPaths; - private readonly IFileSystem _fileSystem; - private readonly ILogger _logger; - private readonly IJsonSerializer _json; - - private readonly INotificationManager _notifications; - private readonly IUserManager _userManager; - - private readonly TimeSpan _frequency = TimeSpan.FromHours(24); - private readonly ITimerFactory _timerFactory; - - public NewsEntryPoint(IHttpClient httpClient, IApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IJsonSerializer json, INotificationManager notifications, IUserManager userManager, ITimerFactory timerFactory) - { - _httpClient = httpClient; - _appPaths = appPaths; - _fileSystem = fileSystem; - _logger = logger; - _json = json; - _notifications = notifications; - _userManager = userManager; - _timerFactory = timerFactory; - } - - public void Run() - { - _timer = _timerFactory.Create(OnTimerFired, null, TimeSpan.FromMilliseconds(500), _frequency); - } - - /// <summary> - /// Called when [timer fired]. - /// </summary> - /// <param name="state">The state.</param> - private async void OnTimerFired(object state) - { - var path = Path.Combine(_appPaths.CachePath, "news.json"); - - try - { - await DownloadNews(path).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error downloading news"); - } - } - - private async Task DownloadNews(string path) - { - DateTime? lastUpdate = null; - - if (_fileSystem.FileExists(path)) - { - lastUpdate = _fileSystem.GetLastWriteTimeUtc(path); - } - - var requestOptions = new HttpRequestOptions - { - Url = "https://github.com/jellyfin/jellyfin", - Progress = new SimpleProgress<double>(), - UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.42 Safari/537.36", - BufferContent = false - }; - - using (var response = await _httpClient.SendAsync(requestOptions, "GET").ConfigureAwait(false)) - { - using (var stream = response.Content) - { - using (var reader = XmlReader.Create(stream)) - { - var news = ParseRssItems(reader).ToList(); - - _json.SerializeToFile(news, path); - - await CreateNotifications(news, lastUpdate, CancellationToken.None).ConfigureAwait(false); - } - } - } - } - - private Task CreateNotifications(List<NewsItem> items, DateTime? lastUpdate, CancellationToken cancellationToken) - { - if (lastUpdate.HasValue) - { - items = items.Where(i => i.Date.ToUniversalTime() >= lastUpdate.Value) - .ToList(); - } - - var tasks = items.Select(i => _notifications.SendNotification(new NotificationRequest - { - Date = i.Date, - Name = i.Title, - Description = i.Description, - Url = i.Link, - UserIds = _userManager.Users.Select(u => u.Id).ToArray() - - }, cancellationToken)); - - return Task.WhenAll(tasks); - } - - private IEnumerable<NewsItem> ParseRssItems(XmlReader reader) - { - reader.MoveToContent(); - reader.Read(); - - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "channel": - { - if (!reader.IsEmptyElement) - { - using (var subReader = reader.ReadSubtree()) - { - return ParseFromChannelNode(subReader); - } - } - else - { - reader.Read(); - } - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - return new List<NewsItem>(); - } - - private IEnumerable<NewsItem> ParseFromChannelNode(XmlReader reader) - { - var list = new List<NewsItem>(); - - reader.MoveToContent(); - reader.Read(); - - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "item": - { - if (!reader.IsEmptyElement) - { - using (var subReader = reader.ReadSubtree()) - { - list.Add(ParseItem(subReader)); - } - } - else - { - reader.Read(); - } - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - return list; - } - - private NewsItem ParseItem(XmlReader reader) - { - var item = new NewsItem(); - - reader.MoveToContent(); - reader.Read(); - - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "title": - { - item.Title = reader.ReadElementContentAsString(); - break; - } - case "link": - { - item.Link = reader.ReadElementContentAsString(); - break; - } - case "description": - { - item.DescriptionHtml = reader.ReadElementContentAsString(); - item.Description = item.DescriptionHtml.StripHtml(); - break; - } - case "pubDate": - { - var date = reader.ReadElementContentAsString(); - DateTime parsedDate; - - if (DateTime.TryParse(date, out parsedDate)) - { - item.Date = parsedDate; - } - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - return item; - } - - public void Dispose() - { - if (_timer != null) - { - _timer.Dispose(); - _timer = null; - } - } - } -} diff --git a/Emby.Server.Implementations/News/NewsService.cs b/Emby.Server.Implementations/News/NewsService.cs deleted file mode 100644 index 80e799634..000000000 --- a/Emby.Server.Implementations/News/NewsService.cs +++ /dev/null @@ -1,77 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Model.News; -using MediaBrowser.Model.Querying; -using MediaBrowser.Model.Serialization; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace Emby.Server.Implementations.News -{ - public class NewsService : INewsService - { - private readonly IApplicationPaths _appPaths; - private readonly IJsonSerializer _json; - - public NewsService(IApplicationPaths appPaths, IJsonSerializer json) - { - _appPaths = appPaths; - _json = json; - } - - public QueryResult<NewsItem> GetProductNews(NewsQuery query) - { - try - { - return GetProductNewsInternal(query); - } - catch (FileNotFoundException) - { - // No biggie - return new QueryResult<NewsItem> - { - Items = new NewsItem[] { } - }; - } - catch (IOException) - { - // No biggie - return new QueryResult<NewsItem> - { - Items = new NewsItem[] { } - }; - } - } - - private QueryResult<NewsItem> GetProductNewsInternal(NewsQuery query) - { - var path = Path.Combine(_appPaths.CachePath, "news.json"); - - var items = GetNewsItems(path).OrderByDescending(i => i.Date); - - var itemsArray = items.ToArray(); - var count = itemsArray.Length; - - if (query.StartIndex.HasValue) - { - itemsArray = itemsArray.Skip(query.StartIndex.Value).ToArray(); - } - - if (query.Limit.HasValue) - { - itemsArray = itemsArray.Take(query.Limit.Value).ToArray(); - } - - return new QueryResult<NewsItem> - { - Items = itemsArray, - TotalRecordCount = count - }; - } - - private IEnumerable<NewsItem> GetNewsItems(string path) - { - return _json.DeserializeFromFile<List<NewsItem>>(path); - } - } -} diff --git a/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs b/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs index 7c2ce4af3..0bebca8fc 100644 --- a/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs +++ b/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Progress; using MediaBrowser.Model.Events; @@ -465,11 +464,10 @@ namespace Emby.Server.Implementations.ScheduledTasks CurrentProgress = e; - EventHelper.FireEventIfNotNull(TaskProgress, this, new GenericEventArgs<double> + TaskProgress?.Invoke(this, new GenericEventArgs<double> { Argument = e - - }, Logger); + }); } /// <summary> diff --git a/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs b/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs index 0322583dc..361c31acb 100644 --- a/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs +++ b/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs @@ -1,17 +1,16 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Threading.Tasks; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Model.Events; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.System; using MediaBrowser.Model.Tasks; -using System.IO; namespace Emby.Server.Implementations.ScheduledTasks { @@ -331,11 +330,10 @@ namespace Emby.Server.Implementations.ScheduledTasks /// <param name="task">The task.</param> internal void OnTaskExecuting(IScheduledTaskWorker task) { - EventHelper.FireEventIfNotNull(TaskExecuting, this, new GenericEventArgs<IScheduledTaskWorker> + TaskExecuting?.Invoke(this, new GenericEventArgs<IScheduledTaskWorker> { Argument = task - - }, Logger); + }); } /// <summary> @@ -345,12 +343,11 @@ namespace Emby.Server.Implementations.ScheduledTasks /// <param name="result">The result.</param> internal void OnTaskCompleted(IScheduledTaskWorker task, TaskResult result) { - EventHelper.FireEventIfNotNull(TaskCompleted, task, new TaskCompletionEventArgs + TaskCompleted?.Invoke(task, new TaskCompletionEventArgs { Result = result, Task = task - - }, Logger); + }); ExecuteQueuedTasks(); } diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index 2b2b3c677..419c24f13 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -18,7 +18,6 @@ using MediaBrowser.Model.Library; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Session; -using MediaBrowser.Model.Users; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -255,11 +254,10 @@ namespace Emby.Server.Implementations.Session if ((activityDate - lastActivityDate).TotalSeconds > 10) { - EventHelper.FireEventIfNotNull(SessionActivity, this, new SessionEventArgs + SessionActivity?.Invoke(this, new SessionEventArgs { SessionInfo = session - - }, _logger); + }); } return session; @@ -693,7 +691,7 @@ namespace Emby.Server.Implementations.Session } } - EventHelper.FireEventIfNotNull(PlaybackProgress, this, new PlaybackProgressEventArgs + PlaybackProgress?.Invoke(this, new PlaybackProgressEventArgs { Item = libraryItem, Users = users, @@ -707,8 +705,7 @@ namespace Emby.Server.Implementations.Session PlaySessionId = info.PlaySessionId, IsAutomated = isAutomated, Session = session - - }, _logger); + }); if (!isAutomated) { @@ -1399,7 +1396,7 @@ namespace Emby.Server.Implementations.Session if (result == null) { - EventHelper.FireEventIfNotNull(AuthenticationFailed, this, new GenericEventArgs<AuthenticationRequest>(request), _logger); + AuthenticationFailed?.Invoke(this, new GenericEventArgs<AuthenticationRequest>(request)); throw new SecurityException("Invalid user or password entered."); } @@ -1424,7 +1421,7 @@ namespace Emby.Server.Implementations.Session ServerId = _appHost.SystemId }; - EventHelper.FireEventIfNotNull(AuthenticationSucceeded, this, new GenericEventArgs<AuthenticationResult>(returnResult), _logger); + AuthenticationSucceeded?.Invoke(this, new GenericEventArgs<AuthenticationResult>(returnResult)); return returnResult; } @@ -1587,11 +1584,10 @@ namespace Emby.Server.Implementations.Session if (saveCapabilities) { - EventHelper.FireEventIfNotNull(CapabilitiesChanged, this, new SessionEventArgs + CapabilitiesChanged?.Invoke(this, new SessionEventArgs { SessionInfo = session - - }, _logger); + }); try { diff --git a/Emby.Server.Implementations/SystemEvents.cs b/Emby.Server.Implementations/SystemEvents.cs index f39d63002..578338aee 100644 --- a/Emby.Server.Implementations/SystemEvents.cs +++ b/Emby.Server.Implementations/SystemEvents.cs @@ -1,6 +1,6 @@ using System; -using Microsoft.Extensions.Logging; using MediaBrowser.Model.System; +using Microsoft.Extensions.Logging; namespace Emby.Server.Implementations { diff --git a/Emby.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs index 27741863b..82b61c15a 100644 --- a/Emby.Server.Implementations/Updates/InstallationManager.cs +++ b/Emby.Server.Implementations/Updates/InstallationManager.cs @@ -7,7 +7,6 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Common; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; using MediaBrowser.Common.Progress; @@ -60,7 +59,7 @@ namespace Emby.Server.Implementations.Updates /// <param name="plugin">The plugin.</param> private void OnPluginUninstalled(IPlugin plugin) { - EventHelper.FireEventIfNotNull(PluginUninstalled, this, new GenericEventArgs<IPlugin> { Argument = plugin }, _logger); + PluginUninstalled?.Invoke(this, new GenericEventArgs<IPlugin> { Argument = plugin }); } #endregion @@ -78,7 +77,7 @@ namespace Emby.Server.Implementations.Updates { _logger.LogInformation("Plugin updated: {0} {1} {2}", newVersion.name, newVersion.versionStr ?? string.Empty, newVersion.classification); - EventHelper.FireEventIfNotNull(PluginUpdated, this, new GenericEventArgs<Tuple<IPlugin, PackageVersionInfo>> { Argument = new Tuple<IPlugin, PackageVersionInfo>(plugin, newVersion) }, _logger); + PluginUpdated?.Invoke(this, new GenericEventArgs<Tuple<IPlugin, PackageVersionInfo>> { Argument = new Tuple<IPlugin, PackageVersionInfo>(plugin, newVersion) }); _applicationHost.NotifyPendingRestart(); } @@ -97,7 +96,7 @@ namespace Emby.Server.Implementations.Updates { _logger.LogInformation("New plugin installed: {0} {1} {2}", package.name, package.versionStr ?? string.Empty, package.classification); - EventHelper.FireEventIfNotNull(PluginInstalled, this, new GenericEventArgs<PackageVersionInfo> { Argument = package }, _logger); + PluginInstalled?.Invoke(this, new GenericEventArgs<PackageVersionInfo> { Argument = package }); _applicationHost.NotifyPendingRestart(); } @@ -469,7 +468,7 @@ namespace Emby.Server.Implementations.Updates PackageVersionInfo = package }; - EventHelper.FireEventIfNotNull(PackageInstalling, this, installationEventArgs, _logger); + PackageInstalling?.Invoke(this, installationEventArgs); try { @@ -482,7 +481,7 @@ namespace Emby.Server.Implementations.Updates CompletedInstallationsInternal.Add(installationInfo); - EventHelper.FireEventIfNotNull(PackageInstallationCompleted, this, installationEventArgs, _logger); + PackageInstallationCompleted?.Invoke(this, installationEventArgs); } catch (OperationCanceledException) { @@ -493,7 +492,7 @@ namespace Emby.Server.Implementations.Updates _logger.LogInformation("Package installation cancelled: {0} {1}", package.name, package.versionStr); - EventHelper.FireEventIfNotNull(PackageInstallationCancelled, this, installationEventArgs, _logger); + PackageInstallationCancelled?.Invoke(this, installationEventArgs); throw; } @@ -506,12 +505,11 @@ namespace Emby.Server.Implementations.Updates CurrentInstallations.Remove(tuple); } - EventHelper.FireEventIfNotNull(PackageInstallationFailed, this, new InstallationFailedEventArgs + PackageInstallationFailed?.Invoke(this, new InstallationFailedEventArgs { InstallationInfo = installationInfo, Exception = ex - - }, _logger); + }); throw; } |
