From c99b45dbe0b6f0b02850eda5c9ece071c6c03e85 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Mon, 31 Dec 2018 00:28:23 +0100 Subject: Remove some warnings --- MediaBrowser.Common/Updates/GithubUpdater.cs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'MediaBrowser.Common') diff --git a/MediaBrowser.Common/Updates/GithubUpdater.cs b/MediaBrowser.Common/Updates/GithubUpdater.cs index 4275799a98..22ed788e0c 100644 --- a/MediaBrowser.Common/Updates/GithubUpdater.cs +++ b/MediaBrowser.Common/Updates/GithubUpdater.cs @@ -41,13 +41,11 @@ namespace MediaBrowser.Common.Updates } using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) + using (var stream = response.Content) { - using (var stream = response.Content) - { - var obj = _jsonSerializer.DeserializeFromStream(stream); + var obj = await _jsonSerializer.DeserializeFromStreamAsync(stream).ConfigureAwait(false); - return CheckForUpdateResult(obj, minVersion, updateLevel, assetFilename, packageName, targetFilename); - } + return CheckForUpdateResult(obj, minVersion, updateLevel, assetFilename, packageName, targetFilename); } } @@ -114,19 +112,17 @@ namespace MediaBrowser.Common.Updates }; using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) + using (var stream = response.Content) { - using (var stream = response.Content) - { - var obj = _jsonSerializer.DeserializeFromStream(stream); + var obj = await _jsonSerializer.DeserializeFromStreamAsync(stream).ConfigureAwait(false); - obj = obj.Where(i => (i.assets ?? new List()).Any(a => IsAsset(a, assetFilename, i.tag_name))).ToArray(); + obj = obj.Where(i => (i.assets ?? new List()).Any(a => IsAsset(a, assetFilename, i.tag_name))).ToArray(); - list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Release)).OrderByDescending(GetVersion).Take(1)); - list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Beta)).OrderByDescending(GetVersion).Take(1)); - list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Dev)).OrderByDescending(GetVersion).Take(1)); + list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Release)).OrderByDescending(GetVersion).Take(1)); + list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Beta)).OrderByDescending(GetVersion).Take(1)); + list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Dev)).OrderByDescending(GetVersion).Take(1)); - return list; - } + return list; } } -- cgit v1.2.3 From 87812d1e7fd4c423b58fbeaf150bc7fe0811e5fc Mon Sep 17 00:00:00 2001 From: Anthony Lavado Date: Wed, 2 Jan 2019 01:22:21 -0500 Subject: Fix spacing to C#/Visual Studio standards - This is a fix automatically applied by Visual Studio --- Emby.Drawing/Emby.Drawing.csproj | 2 +- Emby.Photos/Emby.Photos.csproj | 2 +- MediaBrowser.Api/MediaBrowser.Api.csproj | 2 +- MediaBrowser.Common/MediaBrowser.Common.csproj | 2 +- MediaBrowser.Controller/MediaBrowser.Controller.csproj | 2 +- MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj | 2 +- MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj | 2 +- MediaBrowser.Model/MediaBrowser.Model.csproj | 2 +- MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj | 2 +- MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj | 2 +- Mono.Nat/Mono.Nat.csproj | 2 +- SocketHttpListener/SocketHttpListener.csproj | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) (limited to 'MediaBrowser.Common') diff --git a/Emby.Drawing/Emby.Drawing.csproj b/Emby.Drawing/Emby.Drawing.csproj index 3fa60fad14..5ffaaed276 100644 --- a/Emby.Drawing/Emby.Drawing.csproj +++ b/Emby.Drawing/Emby.Drawing.csproj @@ -6,7 +6,7 @@ - + diff --git a/Emby.Photos/Emby.Photos.csproj b/Emby.Photos/Emby.Photos.csproj index e945ff444d..3ecab9176a 100644 --- a/Emby.Photos/Emby.Photos.csproj +++ b/Emby.Photos/Emby.Photos.csproj @@ -7,7 +7,7 @@ - + diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index 3fa60fad14..5ffaaed276 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -6,7 +6,7 @@ - + diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index 43f3b0be7a..f625a17eef 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -5,7 +5,7 @@ - + diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 8e816080cd..4567f62dd5 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -6,7 +6,7 @@ - + diff --git a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj index bdf2f9873a..b5eb9c2eed 100644 --- a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj +++ b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj @@ -6,7 +6,7 @@ - + diff --git a/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj b/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj index d9d2b4bf95..d93394957a 100644 --- a/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj +++ b/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj @@ -6,7 +6,7 @@ - + diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index a5b2f40833..fe10688426 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -10,7 +10,7 @@ - + diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index fb5d397436..855b8b627d 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -6,7 +6,7 @@ - + diff --git a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj index 3fa60fad14..5ffaaed276 100644 --- a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj +++ b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj @@ -6,7 +6,7 @@ - + diff --git a/Mono.Nat/Mono.Nat.csproj b/Mono.Nat/Mono.Nat.csproj index eacf84c356..26028eca9e 100644 --- a/Mono.Nat/Mono.Nat.csproj +++ b/Mono.Nat/Mono.Nat.csproj @@ -6,7 +6,7 @@ - + diff --git a/SocketHttpListener/SocketHttpListener.csproj b/SocketHttpListener/SocketHttpListener.csproj index 494bc7fc90..ca9056a6ad 100644 --- a/SocketHttpListener/SocketHttpListener.csproj +++ b/SocketHttpListener/SocketHttpListener.csproj @@ -6,7 +6,7 @@ - + -- cgit v1.2.3 From 3a65fb1da2009df246ae6f1252d44d24e882e554 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Wed, 2 Jan 2019 12:14:31 +0100 Subject: Remove obsolete GetMBId --- .../Channels/ChannelManager.cs | 4 ++-- MediaBrowser.Common/Extensions/BaseExtensions.cs | 20 -------------------- 2 files changed, 2 insertions(+), 22 deletions(-) (limited to 'MediaBrowser.Common') diff --git a/Emby.Server.Implementations/Channels/ChannelManager.cs b/Emby.Server.Implementations/Channels/ChannelManager.cs index 00da46f303..c2160d3384 100644 --- a/Emby.Server.Implementations/Channels/ChannelManager.cs +++ b/Emby.Server.Implementations/Channels/ChannelManager.cs @@ -901,8 +901,8 @@ namespace Emby.Server.Implementations.Channels private T GetItemById(string idString, string channelName, out bool isNew) where T : BaseItem, new() { - var id = GetIdToHash(idString, channelName).GetMBId(typeof(T)); - + var id = _libraryManager.GetNewItemId(GetIdToHash(idString, channelName), typeof(T)); + T item = null; try diff --git a/MediaBrowser.Common/Extensions/BaseExtensions.cs b/MediaBrowser.Common/Extensions/BaseExtensions.cs index d7f4424faa..520c04244e 100644 --- a/MediaBrowser.Common/Extensions/BaseExtensions.cs +++ b/MediaBrowser.Common/Extensions/BaseExtensions.cs @@ -34,25 +34,5 @@ namespace MediaBrowser.Common.Extensions { return CryptographyProvider.GetMD5(str); } - - /// - /// Gets the MB id. - /// - /// The STR. - /// The type. - /// Guid. - /// type - [Obsolete("Use LibraryManager.GetNewItemId")] - public static Guid GetMBId(this string str, Type type) - { - if (type == null) - { - throw new ArgumentNullException("type"); - } - - var key = type.FullName + str.ToLower(); - - return key.GetMD5(); - } } } -- cgit v1.2.3 From 40563dc6cc30e45ace90db30a934478395d8c7c1 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Wed, 2 Jan 2019 17:09:40 +0100 Subject: Remove GitHub updater and don't trow exception in release --- Emby.Server.Implementations/ApplicationHost.cs | 49 +---- Jellyfin.Server/CoreAppHost.cs | 4 +- Jellyfin.Server/Program.cs | 1 - MediaBrowser.Common/Updates/GithubUpdater.cs | 274 ------------------------- 4 files changed, 7 insertions(+), 321 deletions(-) delete mode 100644 MediaBrowser.Common/Updates/GithubUpdater.cs (limited to 'MediaBrowser.Common') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index f1e1b4b2d0..5853d20c8f 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -368,7 +368,6 @@ namespace Emby.Server.Implementations protected IAuthService AuthService { get; private set; } public StartupOptions StartupOptions { get; private set; } - protected readonly string ReleaseAssetFilename; internal IPowerManagement PowerManagement { get; private set; } internal IImageEncoder ImageEncoder { get; private set; } @@ -393,7 +392,6 @@ namespace Emby.Server.Implementations StartupOptions options, IFileSystem fileSystem, IPowerManagement powerManagement, - string releaseAssetFilename, IEnvironmentInfo environmentInfo, IImageEncoder imageEncoder, ISystemEvents systemEvents, @@ -419,7 +417,6 @@ namespace Emby.Server.Implementations Logger = LoggerFactory.CreateLogger("App"); StartupOptions = options; - ReleaseAssetFilename = releaseAssetFilename; PowerManagement = powerManagement; ImageEncoder = imageEncoder; @@ -2292,48 +2289,12 @@ namespace Emby.Server.Implementations /// The cancellation token. /// The progress. /// Task{CheckForUpdateResult}. - public async Task CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress progress) + public Task CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress progress) { - var updateLevel = SystemUpdateLevel; - var cacheLength = updateLevel == PackageVersionClass.Release ? - TimeSpan.FromHours(12) : - TimeSpan.FromMinutes(5); - - try - { - var result = await new GithubUpdater(HttpClient, JsonSerializer).CheckForUpdateResult("MediaBrowser", - "Emby.Releases", - ApplicationVersion, - updateLevel, - ReleaseAssetFilename, - "MBServer", - UpdateTargetFileName, - cacheLength, - cancellationToken).ConfigureAwait(false); - - HasUpdateAvailable = result.IsUpdateAvailable; - - return result; - } - catch (HttpException ex) - { - // users are overreacting to this occasionally failing - if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.Forbidden) - { - HasUpdateAvailable = false; - return new CheckForUpdateResult - { - IsUpdateAvailable = false - }; - } - - throw; - } - } - - protected virtual string UpdateTargetFileName - { - get { return "Mbserver.zip"; } +#if DEBUG + throw new Exception("Unimplemented"); +#endif + return Task.FromResult(new CheckForUpdateResult()); } /// diff --git a/Jellyfin.Server/CoreAppHost.cs b/Jellyfin.Server/CoreAppHost.cs index 2fb106b3c0..b546343871 100644 --- a/Jellyfin.Server/CoreAppHost.cs +++ b/Jellyfin.Server/CoreAppHost.cs @@ -11,8 +11,8 @@ namespace Jellyfin.Server { public class CoreAppHost : ApplicationHost { - public CoreAppHost(ServerApplicationPaths applicationPaths, ILoggerFactory loggerFactory, StartupOptions options, IFileSystem fileSystem, IPowerManagement powerManagement, string releaseAssetFilename, IEnvironmentInfo environmentInfo, MediaBrowser.Controller.Drawing.IImageEncoder imageEncoder, ISystemEvents systemEvents, MediaBrowser.Common.Net.INetworkManager networkManager) - : base(applicationPaths, loggerFactory, options, fileSystem, powerManagement, releaseAssetFilename, environmentInfo, imageEncoder, systemEvents, networkManager) + public CoreAppHost(ServerApplicationPaths applicationPaths, ILoggerFactory loggerFactory, StartupOptions options, IFileSystem fileSystem, IPowerManagement powerManagement, IEnvironmentInfo environmentInfo, MediaBrowser.Controller.Drawing.IImageEncoder imageEncoder, ISystemEvents systemEvents, MediaBrowser.Common.Net.INetworkManager networkManager) + : base(applicationPaths, loggerFactory, options, fileSystem, powerManagement, environmentInfo, imageEncoder, systemEvents, networkManager) { } diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs index 0150cd5337..9cc2fe1036 100644 --- a/Jellyfin.Server/Program.cs +++ b/Jellyfin.Server/Program.cs @@ -73,7 +73,6 @@ namespace Jellyfin.Server options, fileSystem, new PowerManagement(), - "embyserver-mono_{version}.zip", environmentInfo, new NullImageEncoder(), new SystemEvents(_loggerFactory.CreateLogger("SystemEvents")), diff --git a/MediaBrowser.Common/Updates/GithubUpdater.cs b/MediaBrowser.Common/Updates/GithubUpdater.cs deleted file mode 100644 index 22ed788e0c..0000000000 --- a/MediaBrowser.Common/Updates/GithubUpdater.cs +++ /dev/null @@ -1,274 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Common.Net; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Model.Updates; - -namespace MediaBrowser.Common.Updates -{ - public class GithubUpdater - { - private readonly IHttpClient _httpClient; - private readonly IJsonSerializer _jsonSerializer; - - public GithubUpdater(IHttpClient httpClient, IJsonSerializer jsonSerializer) - { - _httpClient = httpClient; - _jsonSerializer = jsonSerializer; - } - - public async Task CheckForUpdateResult(string organzation, string repository, Version minVersion, PackageVersionClass updateLevel, string assetFilename, string packageName, string targetFilename, TimeSpan cacheLength, CancellationToken cancellationToken) - { - var url = string.Format("https://api.github.com/repos/{0}/{1}/releases", organzation, repository); - - var options = new HttpRequestOptions - { - Url = url, - EnableKeepAlive = false, - CancellationToken = cancellationToken, - UserAgent = "Emby/3.0", - BufferContent = false - }; - - if (cacheLength.Ticks > 0) - { - options.CacheMode = CacheMode.Unconditional; - options.CacheLength = cacheLength; - } - - using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) - using (var stream = response.Content) - { - var obj = await _jsonSerializer.DeserializeFromStreamAsync(stream).ConfigureAwait(false); - - return CheckForUpdateResult(obj, minVersion, updateLevel, assetFilename, packageName, targetFilename); - } - } - - private CheckForUpdateResult CheckForUpdateResult(RootObject[] obj, Version minVersion, PackageVersionClass updateLevel, string assetFilename, string packageName, string targetFilename) - { - if (updateLevel == PackageVersionClass.Release) - { - // Technically all we need to do is check that it's not pre-release - // But let's addititional checks for -beta and -dev to handle builds that might be temporarily tagged incorrectly. - obj = obj.Where(i => !i.prerelease && !i.name.EndsWith("-beta", StringComparison.OrdinalIgnoreCase) && !i.name.EndsWith("-dev", StringComparison.OrdinalIgnoreCase)).ToArray(); - } - else if (updateLevel == PackageVersionClass.Beta) - { - obj = obj.Where(i => i.prerelease && i.name.EndsWith("-beta", StringComparison.OrdinalIgnoreCase)).ToArray(); - } - else if (updateLevel == PackageVersionClass.Dev) - { - obj = obj.Where(i => !i.prerelease || i.name.EndsWith("-beta", StringComparison.OrdinalIgnoreCase) || i.name.EndsWith("-dev", StringComparison.OrdinalIgnoreCase)).ToArray(); - } - - var availableUpdate = obj - .Select(i => CheckForUpdateResult(i, minVersion, assetFilename, packageName, targetFilename)) - .Where(i => i != null) - .OrderByDescending(i => Version.Parse(i.AvailableVersion)) - .FirstOrDefault(); - - return availableUpdate ?? new CheckForUpdateResult - { - IsUpdateAvailable = false - }; - } - - private bool MatchesUpdateLevel(RootObject i, PackageVersionClass updateLevel) - { - if (updateLevel == PackageVersionClass.Beta) - { - return i.prerelease && i.name.EndsWith("-beta", StringComparison.OrdinalIgnoreCase); - } - if (updateLevel == PackageVersionClass.Dev) - { - return !i.prerelease || i.name.EndsWith("-beta", StringComparison.OrdinalIgnoreCase) || - i.name.EndsWith("-dev", StringComparison.OrdinalIgnoreCase); - } - - // Technically all we need to do is check that it's not pre-release - // But let's addititional checks for -beta and -dev to handle builds that might be temporarily tagged incorrectly. - return !i.prerelease && !i.name.EndsWith("-beta", StringComparison.OrdinalIgnoreCase) && - !i.name.EndsWith("-dev", StringComparison.OrdinalIgnoreCase); - } - - public async Task> GetLatestReleases(string organzation, string repository, string assetFilename, CancellationToken cancellationToken) - { - var list = new List(); - - var url = string.Format("https://api.github.com/repos/{0}/{1}/releases", organzation, repository); - - var options = new HttpRequestOptions - { - Url = url, - EnableKeepAlive = false, - CancellationToken = cancellationToken, - UserAgent = "Emby/3.0", - BufferContent = false - }; - - using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) - using (var stream = response.Content) - { - var obj = await _jsonSerializer.DeserializeFromStreamAsync(stream).ConfigureAwait(false); - - obj = obj.Where(i => (i.assets ?? new List()).Any(a => IsAsset(a, assetFilename, i.tag_name))).ToArray(); - - list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Release)).OrderByDescending(GetVersion).Take(1)); - list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Beta)).OrderByDescending(GetVersion).Take(1)); - list.AddRange(obj.Where(i => MatchesUpdateLevel(i, PackageVersionClass.Dev)).OrderByDescending(GetVersion).Take(1)); - - return list; - } - } - - public Version GetVersion(RootObject obj) - { - Version version; - if (!Version.TryParse(obj.tag_name, out version)) - { - return new Version(1, 0); - } - - return version; - } - - private CheckForUpdateResult CheckForUpdateResult(RootObject obj, Version minVersion, string assetFilename, string packageName, string targetFilename) - { - Version version; - var versionString = obj.tag_name; - if (!Version.TryParse(versionString, out version)) - { - return null; - } - - if (version < minVersion) - { - return null; - } - - var asset = (obj.assets ?? new List()).FirstOrDefault(i => IsAsset(i, assetFilename, versionString)); - - if (asset == null) - { - return null; - } - - return new CheckForUpdateResult - { - AvailableVersion = version.ToString(), - IsUpdateAvailable = version > minVersion, - Package = new PackageVersionInfo - { - classification = obj.prerelease ? - (obj.name.EndsWith("-dev", StringComparison.OrdinalIgnoreCase) ? PackageVersionClass.Dev : PackageVersionClass.Beta) : - PackageVersionClass.Release, - name = packageName, - sourceUrl = asset.browser_download_url, - targetFilename = targetFilename, - versionStr = version.ToString(), - requiredVersionStr = "1.0.0", - description = obj.body, - infoUrl = obj.html_url - } - }; - } - - private bool IsAsset(Asset asset, string assetFilename, string version) - { - var downloadFilename = Path.GetFileName(asset.browser_download_url) ?? string.Empty; - - assetFilename = assetFilename.Replace("{version}", version); - - if (downloadFilename.IndexOf(assetFilename, StringComparison.OrdinalIgnoreCase) != -1) - { - return true; - } - - return string.Equals(assetFilename, downloadFilename, StringComparison.OrdinalIgnoreCase); - } - - public class Uploader - { - public string login { get; set; } - public int id { get; set; } - public string avatar_url { get; set; } - public string gravatar_id { get; set; } - public string url { get; set; } - public string html_url { get; set; } - public string followers_url { get; set; } - public string following_url { get; set; } - public string gists_url { get; set; } - public string starred_url { get; set; } - public string subscriptions_url { get; set; } - public string organizations_url { get; set; } - public string repos_url { get; set; } - public string events_url { get; set; } - public string received_events_url { get; set; } - public string type { get; set; } - public bool site_admin { get; set; } - } - - public class Asset - { - public string url { get; set; } - public int id { get; set; } - public string name { get; set; } - public object label { get; set; } - public Uploader uploader { get; set; } - public string content_type { get; set; } - public string state { get; set; } - public int size { get; set; } - public int download_count { get; set; } - public string created_at { get; set; } - public string updated_at { get; set; } - public string browser_download_url { get; set; } - } - - public class Author - { - public string login { get; set; } - public int id { get; set; } - public string avatar_url { get; set; } - public string gravatar_id { get; set; } - public string url { get; set; } - public string html_url { get; set; } - public string followers_url { get; set; } - public string following_url { get; set; } - public string gists_url { get; set; } - public string starred_url { get; set; } - public string subscriptions_url { get; set; } - public string organizations_url { get; set; } - public string repos_url { get; set; } - public string events_url { get; set; } - public string received_events_url { get; set; } - public string type { get; set; } - public bool site_admin { get; set; } - } - - public class RootObject - { - public string url { get; set; } - public string assets_url { get; set; } - public string upload_url { get; set; } - public string html_url { get; set; } - public int id { get; set; } - public string tag_name { get; set; } - public string target_commitish { get; set; } - public string name { get; set; } - public bool draft { get; set; } - public Author author { get; set; } - public bool prerelease { get; set; } - public string created_at { get; set; } - public string published_at { get; set; } - public List assets { get; set; } - public string tarball_url { get; set; } - public string zipball_url { get; set; } - public string body { get; set; } - } - } -} -- cgit v1.2.3 From 3fa751e9bbef072c5bb4c39aad1aede8ced1c003 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Wed, 2 Jan 2019 18:10:52 +0100 Subject: Remove CheckForApplicationUpdate function --- Emby.Server.Implementations/ApplicationHost.cs | 11 ----------- .../ScheduledTasks/PluginUpdateTask.cs | 5 +++-- .../ScheduledTasks/SystemUpdateTask.cs | 5 +++-- MediaBrowser.Common/IApplicationHost.cs | 6 ------ 4 files changed, 6 insertions(+), 21 deletions(-) (limited to 'MediaBrowser.Common') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 98c7cf38b6..fe615fab0a 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -2283,17 +2283,6 @@ namespace Emby.Server.Implementations Plugins = list.ToArray(); } - /// - /// Checks for update. - /// - /// The cancellation token. - /// The progress. - /// Task{CheckForUpdateResult}. - public Task CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress progress) - { - throw new Exception("Unimplemented"); - } - /// /// Updates the application. /// diff --git a/Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs b/Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs index 9b3571ac22..8c562e4523 100644 --- a/Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs @@ -1,4 +1,4 @@ -using MediaBrowser.Common; +/*using MediaBrowser.Common; using MediaBrowser.Common.Updates; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Net; @@ -16,7 +16,7 @@ namespace Emby.Server.Implementations.ScheduledTasks /// /// Plugin Update Task /// - public class PluginUpdateTask /*: IScheduledTask, IConfigurableScheduledTask*/ + public class PluginUpdateTask : IScheduledTask, IConfigurableScheduledTask { /// /// The _logger @@ -140,3 +140,4 @@ namespace Emby.Server.Implementations.ScheduledTasks public bool IsLogged => true; } } +*/ diff --git a/Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs b/Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs index 890a20ddf7..18ff33e953 100644 --- a/Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/SystemUpdateTask.cs @@ -1,4 +1,4 @@ -using MediaBrowser.Common; +/*using MediaBrowser.Common; using MediaBrowser.Common.Configuration; using Microsoft.Extensions.Logging; using System; @@ -13,7 +13,7 @@ namespace Emby.Server.Implementations.ScheduledTasks /// /// Plugin Update Task /// - public class SystemUpdateTask /*: IScheduledTask*/ + public class SystemUpdateTask : IScheduledTask { /// /// The _app host @@ -126,3 +126,4 @@ namespace Emby.Server.Implementations.ScheduledTasks } } } +*/ diff --git a/MediaBrowser.Common/IApplicationHost.cs b/MediaBrowser.Common/IApplicationHost.cs index 32b942b60d..39d69ea15c 100644 --- a/MediaBrowser.Common/IApplicationHost.cs +++ b/MediaBrowser.Common/IApplicationHost.cs @@ -85,12 +85,6 @@ namespace MediaBrowser.Common /// IEnumerable{``0}. IEnumerable GetExports(bool manageLiftime = true); - /// - /// Checks for update. - /// - /// Task{CheckForUpdateResult}. - Task CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress progress); - /// /// Updates the application. /// -- cgit v1.2.3 From a1b96a3135bdae274db58ef35ab35708f2257896 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Wed, 26 Dec 2018 01:16:02 +0100 Subject: Clean up HttpClientManager, LiveTvManager and InstallationManager --- Emby.Server.Implementations/ApplicationHost.cs | 9 +- .../HttpClientManager/HttpClientManager.cs | 123 ++++------ .../LiveTv/Listings/SchedulesDirect.cs | 196 +++++++--------- .../LiveTv/LiveTvManager.cs | 249 +++++++-------------- .../Updates/InstallationManager.cs | 6 +- MediaBrowser.Common/Net/IHttpClient.cs | 7 +- 6 files changed, 217 insertions(+), 373 deletions(-) (limited to 'MediaBrowser.Common') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 3cc6151f13..ff6586ac1e 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -640,15 +640,14 @@ namespace Emby.Server.Implementations /// Gets the exports. /// /// - /// if set to true [manage liftime]. + /// if set to true [manage lifetime]. /// IEnumerable{``0}. public IEnumerable GetExports(bool manageLifetime = true) { var parts = GetExportTypes() .Select(CreateInstanceSafe) .Where(i => i != null) - .Cast() - .ToList(); + .Cast(); if (manageLifetime) { @@ -703,7 +702,7 @@ namespace Emby.Server.Implementations /// /// Runs the startup tasks. /// - public async Task RunStartupTasks() + public Task RunStartupTasks() { Resolve().AddTasks(GetExports(false)); @@ -736,6 +735,8 @@ namespace Emby.Server.Implementations Logger.LogInformation("All entry points have started"); //LoggerFactory.RemoveConsoleOutput(); + + return Task.CompletedTask; } private void RunEntryPoints(IEnumerable entryPoints, bool isBeforeStartup) diff --git a/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs b/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs index 23dd55b183..a2f508b80d 100644 --- a/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs +++ b/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs @@ -5,18 +5,15 @@ using System.Globalization; using System.IO; using System.Linq; using System.Net; -using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; -using Emby.Server.Implementations.IO; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Net; -using MediaBrowser.Controller.IO; namespace Emby.Server.Implementations.HttpClientManager { @@ -136,9 +133,8 @@ namespace Emby.Server.Implementations.HttpClientManager } var request = CreateWebRequest(url); - var httpWebRequest = request as HttpWebRequest; - if (httpWebRequest != null) + if (request is HttpWebRequest httpWebRequest) { AddRequestHeaders(httpWebRequest, options); @@ -159,25 +155,12 @@ namespace Emby.Server.Implementations.HttpClientManager { httpWebRequest.AutomaticDecompression = DecompressionMethods.None; } - } - - - - request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache); - if (httpWebRequest != null) - { if (options.EnableKeepAlive) { httpWebRequest.KeepAlive = true; } - } - request.Method = method; - request.Timeout = options.TimeoutMs; - - if (httpWebRequest != null) - { if (!string.IsNullOrEmpty(options.Host)) { httpWebRequest.Host = options.Host; @@ -189,6 +172,11 @@ namespace Emby.Server.Implementations.HttpClientManager } } + request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache); + + request.Method = method; + request.Timeout = options.TimeoutMs; + if (!string.IsNullOrWhiteSpace(userInfo)) { var parts = userInfo.Split(':'); @@ -215,7 +203,7 @@ namespace Emby.Server.Implementations.HttpClientManager { var hasUserAgent = false; - foreach (var header in options.RequestHeaders.ToList()) + foreach (var header in options.RequestHeaders) { if (string.Equals(header.Key, "Accept", StringComparison.OrdinalIgnoreCase)) { @@ -340,8 +328,8 @@ namespace Emby.Server.Implementations.HttpClientManager _fileSystem.CreateDirectory(_fileSystem.GetDirectoryName(responseCachePath)); using (var responseStream = response.Content) + using (var memoryStream = new MemoryStream()) { - var memoryStream = new MemoryStream(); await responseStream.CopyToAsync(memoryStream).ConfigureAwait(false); memoryStream.Position = 0; @@ -379,10 +367,7 @@ namespace Emby.Server.Implementations.HttpClientManager { try { - // TODO: We can always put this in the options object if needed - var requestEncoding = Encoding.UTF8; - - var bytes = options.RequestContentBytes ?? requestEncoding.GetBytes(options.RequestContent ?? string.Empty); + var bytes = options.RequestContentBytes ?? Encoding.UTF8.GetBytes(options.RequestContent ?? string.Empty); var contentType = options.RequestContentType ?? "application/x-www-form-urlencoded"; @@ -392,7 +377,6 @@ namespace Emby.Server.Implementations.HttpClientManager } httpWebRequest.ContentType = contentType; - httpWebRequest.ContentLength = bytes.Length; (await httpWebRequest.GetRequestStreamAsync().ConfigureAwait(false)).Write(bytes, 0, bytes.Length); } @@ -409,10 +393,7 @@ namespace Emby.Server.Implementations.HttpClientManager if ((DateTime.UtcNow - client.LastTimeout).TotalSeconds < TimeoutSeconds) { - if (options.ResourcePool != null) - { - options.ResourcePool.Release(); - } + options.ResourcePool?.Release(); throw new HttpException(string.Format("Connection to {0} timed out", options.Url)) { IsTimedOut = true }; } @@ -455,9 +436,8 @@ namespace Emby.Server.Implementations.HttpClientManager options.CancellationToken.ThrowIfCancellationRequested(); using (var stream = httpResponse.GetResponseStream()) + using (var memoryStream = new MemoryStream()) { - var memoryStream = new MemoryStream(); - await stream.CopyToAsync(memoryStream).ConfigureAwait(false); memoryStream.Position = 0; @@ -476,10 +456,7 @@ namespace Emby.Server.Implementations.HttpClientManager } finally { - if (options.ResourcePool != null) - { - options.ResourcePool.Release(); - } + options.ResourcePool?.Release(); } } @@ -488,13 +465,9 @@ namespace Emby.Server.Implementations.HttpClientManager var responseInfo = new HttpResponseInfo(disposable) { Content = content, - StatusCode = httpResponse.StatusCode, - ContentType = httpResponse.ContentType, - ContentLength = contentLength, - ResponseUrl = httpResponse.ResponseUri.ToString() }; @@ -511,11 +484,8 @@ namespace Emby.Server.Implementations.HttpClientManager var responseInfo = new HttpResponseInfo { TempFilePath = tempFile, - StatusCode = httpResponse.StatusCode, - ContentType = httpResponse.ContentType, - ContentLength = contentLength }; @@ -619,22 +589,20 @@ namespace Emby.Server.Implementations.HttpClientManager var contentLength = GetContentLength(httpResponse); - if (!contentLength.HasValue) + if (contentLength.HasValue) { - // We're not able to track progress - using (var stream = httpResponse.GetResponseStream()) + using (var fs = _fileSystem.GetFileStream(tempFile, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read, true)) { - using (var fs = _fileSystem.GetFileStream(tempFile, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read, true)) - { - await stream.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, options.CancellationToken).ConfigureAwait(false); - } + await httpResponse.GetResponseStream().CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, options.CancellationToken).ConfigureAwait(false); } } else { + // We're not able to track progress + using (var stream = httpResponse.GetResponseStream()) using (var fs = _fileSystem.GetFileStream(tempFile, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read, true)) { - await httpResponse.GetResponseStream().CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, options.CancellationToken).ConfigureAwait(false); + await stream.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, options.CancellationToken).ConfigureAwait(false); } } @@ -650,10 +618,7 @@ namespace Emby.Server.Implementations.HttpClientManager } finally { - if (options.ResourcePool != null) - { - options.ResourcePool.Release(); - } + options.ResourcePool?.Release(); } } @@ -810,35 +775,38 @@ namespace Emby.Server.Implementations.HttpClientManager var isSuccessful = statusCode >= HttpStatusCode.OK && statusCode <= (HttpStatusCode)299; - if (!isSuccessful) + if (isSuccessful) + { + return; + } + + if (options.LogErrorResponseBody) { - if (options.LogErrorResponseBody) + try { - try + using (var stream = response.GetResponseStream()) { - using (var stream = response.GetResponseStream()) + if (stream != null) { - if (stream != null) + using (var reader = new StreamReader(stream)) { - using (var reader = new StreamReader(stream)) - { - var msg = reader.ReadToEnd(); + var msg = reader.ReadToEnd(); - _logger.LogError(msg); - } + _logger.LogError(msg); } } } - catch - { - - } } - throw new HttpException(response.StatusDescription) + catch { - StatusCode = response.StatusCode - }; + + } } + + throw new HttpException(response.StatusDescription) + { + StatusCode = response.StatusCode + }; } private Task GetResponseAsync(WebRequest request, TimeSpan timeout) @@ -859,13 +827,10 @@ namespace Emby.Server.Implementations.HttpClientManager private static void TimeoutCallback(object state, bool timedOut) { - if (timedOut) + if (timedOut && state != null) { WebRequest request = (WebRequest)state; - if (state != null) - { - request.Abort(); - } + request.Abort(); } } @@ -880,13 +845,13 @@ namespace Emby.Server.Implementations.HttpClientManager public void OnError(Task task) { - if (task.Exception != null) + if (task.Exception == null) { - taskCompletion.TrySetException(task.Exception); + taskCompletion.TrySetException(Enumerable.Empty()); } else { - taskCompletion.TrySetException(new List()); + taskCompletion.TrySetException(task.Exception); } } } diff --git a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs index 60bc38616c..e8ffd0caaf 100644 --- a/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs +++ b/Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs @@ -16,8 +16,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Extensions; -using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; namespace Emby.Server.Implementations.LiveTv.Listings @@ -32,9 +30,6 @@ namespace Emby.Server.Implementations.LiveTv.Listings private const string ApiUrl = "https://json.schedulesdirect.org/20141201"; - private readonly Dictionary> _channelPairingCache = - new Dictionary>(StringComparer.OrdinalIgnoreCase); - public SchedulesDirect(ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IApplicationHost appHost) { _logger = logger; @@ -74,33 +69,29 @@ namespace Emby.Server.Implementations.LiveTv.Listings // Normalize incoming input channelId = channelId.Replace(".json.schedulesdirect.org", string.Empty, StringComparison.OrdinalIgnoreCase).TrimStart('I'); - List programsInfo = new List(); - var token = await GetToken(info, cancellationToken).ConfigureAwait(false); if (string.IsNullOrEmpty(token)) { _logger.LogWarning("SchedulesDirect token is empty, returning empty program list"); - return programsInfo; + + return Enumerable.Empty(); } var dates = GetScheduleRequestDates(startDateUtc, endDateUtc); - string stationID = channelId; - - _logger.LogInformation("Channel Station ID is: " + stationID); - List requestList = - new List() + _logger.LogInformation("Channel Station ID is: {ChannelID}", channelId); + var requestList = new List() + { + new ScheduleDirect.RequestScheduleForChannel() { - new ScheduleDirect.RequestScheduleForChannel() - { - stationID = stationID, - date = dates - } - }; + stationID = channelId, + date = dates + } + }; var requestString = _jsonSerializer.SerializeToString(requestList); - _logger.LogDebug("Request string for schedules is: " + requestString); + _logger.LogDebug("Request string for schedules is: {RequestString}", requestString); var httpOptions = new HttpRequestOptions() { @@ -109,16 +100,17 @@ namespace Emby.Server.Implementations.LiveTv.Listings CancellationToken = cancellationToken, // The data can be large so give it some extra time TimeoutMs = 60000, - LogErrorResponseBody = true + LogErrorResponseBody = true, + RequestContent = requestString }; httpOptions.RequestHeaders["token"] = token; - httpOptions.RequestContent = requestString; using (var response = await Post(httpOptions, true, info).ConfigureAwait(false)) + using (StreamReader reader = new StreamReader(response.Content)) { var dailySchedules = await _jsonSerializer.DeserializeFromStreamAsync>(response.Content).ConfigureAwait(false); - _logger.LogDebug("Found {ScheduleCount} programs on {StationID} ScheduleDirect", dailySchedules.Count, stationID); + _logger.LogDebug("Found {ScheduleCount} programs on {ChannelID} ScheduleDirect", dailySchedules.Count, channelId); httpOptions = new HttpRequestOptions() { @@ -132,14 +124,11 @@ namespace Emby.Server.Implementations.LiveTv.Listings httpOptions.RequestHeaders["token"] = token; - List programsID = new List(); - programsID = dailySchedules.SelectMany(d => d.programs.Select(s => s.programID)).Distinct().ToList(); - var requestBody = "[\"" + string.Join("\", \"", programsID) + "\"]"; - httpOptions.RequestContent = requestBody; - - double wideAspect = 1.77777778; + var programsID = dailySchedules.SelectMany(d => d.programs.Select(s => s.programID)).Distinct(); + httpOptions.RequestContent = "[\"" + string.Join("\", \"", programsID) + "\"]"; using (var innerResponse = await Post(httpOptions, true, info).ConfigureAwait(false)) + using (StreamReader innerReader = new StreamReader(innerResponse.Content)) { var programDetails = await _jsonSerializer.DeserializeFromStreamAsync>(innerResponse.Content).ConfigureAwait(false); var programDict = programDetails.ToDictionary(p => p.programID, y => y); @@ -150,8 +139,8 @@ namespace Emby.Server.Implementations.LiveTv.Listings var images = await GetImageForPrograms(info, programIdsWithImages, cancellationToken).ConfigureAwait(false); - var schedules = dailySchedules.SelectMany(d => d.programs); - foreach (ScheduleDirect.Program schedule in schedules) + List programsInfo = new List(); + foreach (ScheduleDirect.Program schedule in dailySchedules.SelectMany(d => d.programs)) { //_logger.LogDebug("Proccesing Schedule for statio ID " + stationID + // " which corresponds to channel " + channelNumber + " and program id " + @@ -165,15 +154,17 @@ namespace Emby.Server.Implementations.LiveTv.Listings { var programEntry = programDict[schedule.programID]; - var allImages = (images[imageIndex].data ?? new List()).ToList(); - var imagesWithText = allImages.Where(i => string.Equals(i.text, "yes", StringComparison.OrdinalIgnoreCase)).ToList(); - var imagesWithoutText = allImages.Where(i => string.Equals(i.text, "no", StringComparison.OrdinalIgnoreCase)).ToList(); + var allImages = images[imageIndex].data ?? new List(); + var imagesWithText = allImages.Where(i => string.Equals(i.text, "yes", StringComparison.OrdinalIgnoreCase)); + var imagesWithoutText = allImages.Where(i => string.Equals(i.text, "no", StringComparison.OrdinalIgnoreCase)); - double desiredAspect = 0.666666667; + const double desiredAspect = 0.666666667; programEntry.primaryImage = GetProgramImage(ApiUrl, imagesWithText, true, desiredAspect) ?? GetProgramImage(ApiUrl, allImages, true, desiredAspect); + const double wideAspect = 1.77777778; + programEntry.thumbImage = GetProgramImage(ApiUrl, imagesWithText, true, wideAspect); // Don't supply the same image twice @@ -193,18 +184,16 @@ namespace Emby.Server.Implementations.LiveTv.Listings programsInfo.Add(GetProgram(channelId, schedule, programDict[schedule.programID])); } + return programsInfo; } } - - return programsInfo; } private int GetSizeOrder(ScheduleDirect.ImageData image) { if (!string.IsNullOrWhiteSpace(image.height)) { - int value; - if (int.TryParse(image.height, out value)) + if (int.TryParse(image.height, out int value)) { return value; } @@ -225,9 +214,8 @@ namespace Emby.Server.Implementations.LiveTv.Listings { channelNumber = map.atscMajor + "." + map.atscMinor; } - channelNumber = channelNumber.TrimStart('0'); - return channelNumber; + return channelNumber.TrimStart('0'); } private bool IsMovie(ScheduleDirect.ProgramDetails programInfo) @@ -382,8 +370,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings if (details.movie != null) { - int year; - if (!string.IsNullOrEmpty(details.movie.year) && int.TryParse(details.movie.year, out year)) + if (!string.IsNullOrEmpty(details.movie.year) && int.TryParse(details.movie.year, out int year)) { info.ProductionYear = year; } @@ -414,18 +401,12 @@ namespace Emby.Server.Implementations.LiveTv.Listings return date; } - private string GetProgramImage(string apiUrl, List images, bool returnDefaultImage, double desiredAspect) + private string GetProgramImage(string apiUrl, IEnumerable images, bool returnDefaultImage, double desiredAspect) { - string url = null; - - var matches = images; - - matches = matches - .OrderBy(i => Math.Abs(desiredAspect - GetApsectRatio(i))) + var match = images + .OrderBy(i => Math.Abs(desiredAspect - GetAspectRatio(i))) .ThenByDescending(GetSizeOrder) - .ToList(); - - var match = matches.FirstOrDefault(); + .FirstOrDefault(); if (match == null) { @@ -434,22 +415,21 @@ namespace Emby.Server.Implementations.LiveTv.Listings var uri = match.uri; - if (!string.IsNullOrWhiteSpace(uri)) + if (string.IsNullOrWhiteSpace(uri)) { - if (uri.IndexOf("http", StringComparison.OrdinalIgnoreCase) != -1) - { - url = uri; - } - else - { - url = apiUrl + "/image/" + uri; - } + return null; + } + else if (uri.IndexOf("http", StringComparison.OrdinalIgnoreCase) != -1) + { + return uri; + } + else + { + return apiUrl + "/image/" + uri; } - //_logger.LogDebug("URL for image is : " + url); - return url; } - private double GetApsectRatio(ScheduleDirect.ImageData i) + private double GetAspectRatio(ScheduleDirect.ImageData i) { int width = 0; int height = 0; @@ -614,8 +594,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings if (!string.IsNullOrEmpty(savedToken.Name) && !string.IsNullOrEmpty(savedToken.Value)) { - long ticks; - if (long.TryParse(savedToken.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out ticks)) + if (long.TryParse(savedToken.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out long ticks)) { // If it's under 24 hours old we can still use it if (DateTime.UtcNow.Ticks - ticks < TimeSpan.FromHours(20).Ticks) @@ -685,8 +664,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings } } - var newToken = await GetToken(providerInfo, options.CancellationToken).ConfigureAwait(false); - options.RequestHeaders["token"] = newToken; + options.RequestHeaders["token"] = await GetToken(providerInfo, options.CancellationToken).ConfigureAwait(false);; return await Post(options, false, providerInfo).ConfigureAwait(false); } @@ -724,8 +702,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings } } - var newToken = await GetToken(providerInfo, options.CancellationToken).ConfigureAwait(false); - options.RequestHeaders["token"] = newToken; + options.RequestHeaders["token"] = await GetToken(providerInfo, options.CancellationToken).ConfigureAwait(false); return await Get(options, false, providerInfo).ConfigureAwait(false); } @@ -743,9 +720,9 @@ namespace Emby.Server.Implementations.LiveTv.Listings //_logger.LogInformation("Obtaining token from Schedules Direct from addres: " + httpOptions.Url + " with body " + // httpOptions.RequestContent); - using (var responce = await Post(httpOptions, false, null).ConfigureAwait(false)) + using (var response = await Post(httpOptions, false, null).ConfigureAwait(false)) { - var root = await _jsonSerializer.DeserializeFromStreamAsync(responce.Content).ConfigureAwait(false); + var root = await _jsonSerializer.DeserializeFromStreamAsync(response.Content).ConfigureAwait(false); if (root.message == "OK") { _logger.LogInformation("Authenticated with Schedules Direct token: " + root.token); @@ -828,13 +805,11 @@ namespace Emby.Server.Implementations.LiveTv.Listings try { using (var httpResponse = await Get(options, false, null).ConfigureAwait(false)) + using (var response = httpResponse.Content) { - using (var response = httpResponse.Content) - { - var root = await _jsonSerializer.DeserializeFromStreamAsync(response).ConfigureAwait(false); + var root = await _jsonSerializer.DeserializeFromStreamAsync(response).ConfigureAwait(false); - return root.lineups.Any(i => string.Equals(info.ListingsId, i.lineup, StringComparison.OrdinalIgnoreCase)); - } + return root.lineups.Any(i => string.Equals(info.ListingsId, i.lineup, StringComparison.OrdinalIgnoreCase)); } } catch (HttpException ex) @@ -913,54 +888,41 @@ namespace Emby.Server.Implementations.LiveTv.Listings var list = new List(); using (var httpResponse = await Get(httpOptions, true, info).ConfigureAwait(false)) + using (var response = httpResponse.Content) { - using (var response = httpResponse.Content) - { - var root = await _jsonSerializer.DeserializeFromStreamAsync(response).ConfigureAwait(false); - _logger.LogInformation("Found " + root.map.Count + " channels on the lineup on ScheduleDirect"); - _logger.LogInformation("Mapping Stations to Channel"); - - var allStations = root.stations ?? new List(); + var root = await _jsonSerializer.DeserializeFromStreamAsync(response).ConfigureAwait(false); + _logger.LogInformation("Found {ChannelCount} channels on the lineup on ScheduleDirect", root.map.Count); + _logger.LogInformation("Mapping Stations to Channel"); - foreach (ScheduleDirect.Map map in root.map) - { - var channelNumber = GetChannelNumber(map); + var allStations = root.stations ?? Enumerable.Empty(); - var station = allStations.FirstOrDefault(item => string.Equals(item.stationID, map.stationID, StringComparison.OrdinalIgnoreCase)); - if (station == null) - { - station = new ScheduleDirect.Station - { - stationID = map.stationID - }; - } - - var name = channelNumber; + foreach (ScheduleDirect.Map map in root.map) + { + var channelNumber = GetChannelNumber(map); - var channelInfo = new ChannelInfo + var station = allStations.FirstOrDefault(item => string.Equals(item.stationID, map.stationID, StringComparison.OrdinalIgnoreCase)); + if (station == null) + { + station = new ScheduleDirect.Station { - Number = channelNumber, - Name = name + stationID = map.stationID }; + } - if (station != null) - { - if (!string.IsNullOrWhiteSpace(station.name)) - { - channelInfo.Name = station.name; - } - - channelInfo.Id = station.stationID; - channelInfo.CallSign = station.callsign; - - if (station.logo != null) - { - channelInfo.ImageUrl = station.logo.URL; - } - } + var channelInfo = new ChannelInfo + { + Id = station.stationID, + CallSign = station.callsign, + Number = channelNumber, + Name = string.IsNullOrWhiteSpace(station.name) ? channelNumber : station.name + }; - list.Add(channelInfo); + if (station.logo != null) + { + channelInfo.ImageUrl = station.logo.URL; } + + list.Add(channelInfo); } } diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs index ee2a9fe4b3..a4ffbd2fe8 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs @@ -132,9 +132,7 @@ namespace Emby.Server.Implementations.LiveTv { service.DataSourceChanged += service_DataSourceChanged; - var embyTv = service as EmbyTV.EmbyTV; - - if (embyTv != null) + if (service is EmbyTV.EmbyTV embyTv) { embyTv.TimerCreated += EmbyTv_TimerCreated; embyTv.TimerCancelled += EmbyTv_TimerCancelled; @@ -251,18 +249,15 @@ namespace Emby.Server.Implementations.LiveTv mediaSourceId = null; } - MediaSourceInfo info; - bool isVideo; - ILiveTvService service; - ILiveStream liveStream; - var channel = (LiveTvChannel)_libraryManager.GetItemById(id); - isVideo = channel.ChannelType == ChannelType.TV; - service = GetService(channel); + + bool isVideo = channel.ChannelType == ChannelType.TV; + ILiveTvService service = GetService(channel); _logger.LogInformation("Opening channel stream from {0}, external channel Id: {1}", service.Name, channel.ExternalId); - var supportsManagedStream = service as ISupportsDirectStreamProvider; - if (supportsManagedStream != null) + MediaSourceInfo info; + ILiveStream liveStream; + if (service is ISupportsDirectStreamProvider supportsManagedStream) { liveStream = await supportsManagedStream.GetChannelStreamWithDirectStreamProvider(channel.ExternalId, mediaSourceId, currentLiveStreams, cancellationToken).ConfigureAwait(false); info = liveStream.MediaSource; @@ -303,14 +298,12 @@ namespace Emby.Server.Implementations.LiveTv throw new NotImplementedException(); } - var list = sources.ToList(); - - foreach (var source in list) + foreach (var source in sources) { Normalize(source, service, baseItem.ChannelType == ChannelType.TV); } - return list; + return sources; } private ILiveTvService GetService(LiveTvChannel item) @@ -542,13 +535,11 @@ namespace Emby.Server.Implementations.LiveTv { var id = _tvDtoService.GetInternalProgramId(info.Id); - LiveTvProgram item = null; - allExistingPrograms.TryGetValue(id, out item); - var isNew = false; var forceUpdate = false; - if (item == null) + LiveTvProgram item; + if (!allExistingPrograms.TryGetValue(id, out item)) { isNew = true; item = new LiveTvProgram @@ -783,11 +774,9 @@ namespace Emby.Server.Implementations.LiveTv var dto = _dtoService.GetBaseItemDto(program, new DtoOptions(), user); - var list = new List>(); - - var externalSeriesId = program.ExternalSeriesId; - - list.Add(new Tuple(dto, program.ExternalId, externalSeriesId)); + var list = new List>() { + new Tuple(dto, program.ExternalId, program.ExternalSeriesId) + }; await AddRecordingInfo(list, cancellationToken).ConfigureAwait(false); @@ -928,13 +917,11 @@ namespace Emby.Server.Implementations.LiveTv programs = programs.Take(query.Limit.Value); } - var result = new QueryResult - { - Items = programs.ToArray(), - TotalRecordCount = totalCount - }; - - return result; + return new QueryResult + { + Items = programs.ToArray(), + TotalRecordCount = totalCount + }; } public QueryResult GetRecommendedPrograms(InternalItemsQuery query, DtoOptions options, CancellationToken cancellationToken) @@ -948,17 +935,11 @@ namespace Emby.Server.Implementations.LiveTv var internalResult = GetRecommendedProgramsInternal(query, options, cancellationToken); - var user = query.User; - - var returnArray = _dtoService.GetBaseItemDtos(internalResult.Items, options, user); - - var result = new QueryResult - { - Items = returnArray, - TotalRecordCount = internalResult.TotalRecordCount - }; - - return result; + return new QueryResult + { + Items = _dtoService.GetBaseItemDtos(internalResult.Items, options, query.User), + TotalRecordCount = internalResult.TotalRecordCount + }; } private int GetRecommendationScore(LiveTvProgram program, User user, bool factorChannelWatchCount) @@ -977,28 +958,26 @@ namespace Emby.Server.Implementations.LiveTv var channel = _libraryManager.GetItemById(program.ChannelId); - if (channel != null) + if (channel == null) { - var channelUserdata = _userDataManager.GetUserData(user, channel); + return score; + } - if (channelUserdata.Likes ?? false) - { - score += 2; - } - else if (!(channelUserdata.Likes ?? true)) - { - score -= 2; - } + var channelUserdata = _userDataManager.GetUserData(user, channel); - if (channelUserdata.IsFavorite) - { - score += 3; - } + if (channelUserdata.Likes.HasValue) + { + score += channelUserdata.Likes.Value ? 2 : -2; + } - if (factorChannelWatchCount) - { - score += channelUserdata.PlayCount; - } + if (channelUserdata.IsFavorite) + { + score += 3; + } + + if (factorChannelWatchCount) + { + score += channelUserdata.PlayCount; } return score; @@ -1153,7 +1132,6 @@ namespace Emby.Server.Implementations.LiveTv var numComplete = 0; var parentFolder = GetInternalLiveTvFolder(cancellationToken); - var parentFolderId = parentFolder.Id; foreach (var channelInfo in allChannelsList) { @@ -1239,30 +1217,11 @@ namespace Emby.Server.Implementations.LiveTv programs.Add(programItem.Id); - if (program.IsMovie) - { - isMovie = true; - } - - if (program.IsSeries) - { - iSSeries = true; - } - - if (program.IsSports) - { - isSports = true; - } - - if (program.IsNews) - { - isNews = true; - } - - if (program.IsKids) - { - isKids = true; - } + isMovie |= program.IsMovie; + iSSeries |= program.IsSeries; + isSports |= program.IsSports; + isNews |= program.IsNews; + isKids |= program.IsKids; } _logger.LogDebug("Channel {0} has {1} new programs and {2} updated programs", currentChannel.Name, newPrograms.Count, updatedPrograms.Count); @@ -1304,8 +1263,7 @@ namespace Emby.Server.Implementations.LiveTv } numComplete++; - double percent = numComplete; - percent /= allChannelsList.Count; + double percent = numComplete / allChannelsList.Count; progress.Report(85 * percent + 15); } @@ -1320,7 +1278,6 @@ namespace Emby.Server.Implementations.LiveTv { IncludeItemTypes = validTypes, DtoOptions = new DtoOptions(false) - }); var numComplete = 0; @@ -1351,8 +1308,7 @@ namespace Emby.Server.Implementations.LiveTv } numComplete++; - double percent = numComplete; - percent /= list.Count; + double percent = numComplete / list.Count; progress.Report(100 * percent); } @@ -1414,28 +1370,22 @@ namespace Emby.Server.Implementations.LiveTv excludeItemTypes.Add(typeof(Episode).Name); } } - if (query.IsSports.HasValue) + if (query.IsSports ?? false) { - if (query.IsSports.Value) - { - genres.Add("Sports"); - } + genres.Add("Sports"); } - if (query.IsKids.HasValue) + if (query.IsKids ?? false) { - if (query.IsKids.Value) - { - genres.Add("Kids"); - genres.Add("Children"); - genres.Add("Family"); - } + genres.Add("Kids"); + genres.Add("Children"); + genres.Add("Family"); } var limit = query.Limit; - if ((query.IsInProgress ?? false)) + if (query.IsInProgress ?? false) { - limit = (query.Limit ?? 10) * 2; + // limit = (query.Limit ?? 10) * 2; limit = null; //var allActivePaths = EmbyTV.EmbyTV.Current.GetAllActiveRecordings().Select(i => i.Path).ToArray(); @@ -1467,7 +1417,7 @@ namespace Emby.Server.Implementations.LiveTv DtoOptions = dtoOptions }); - if ((query.IsInProgress ?? false)) + if (query.IsInProgress ?? false) { result.Items = result .Items @@ -1494,60 +1444,33 @@ namespace Emby.Server.Implementations.LiveTv dto.StartDate = program.StartDate; dto.EpisodeTitle = program.EpisodeTitle; - - if (program.IsRepeat) - { - dto.IsRepeat = program.IsRepeat; - } - if (program.IsMovie) - { - dto.IsMovie = program.IsMovie; - } - if (program.IsSeries) - { - dto.IsSeries = program.IsSeries; - } - if (program.IsSports) - { - dto.IsSports = program.IsSports; - } - if (program.IsLive) - { - dto.IsLive = program.IsLive; - } - if (program.IsNews) - { - dto.IsNews = program.IsNews; - } - if (program.IsKids) - { - dto.IsKids = program.IsKids; - } - if (program.IsPremiere) - { - dto.IsPremiere = program.IsPremiere; - } + dto.IsRepeat |= program.IsRepeat; + dto.IsMovie |= program.IsMovie; + dto.IsSeries |= program.IsSeries; + dto.IsSports |= program.IsSports; + dto.IsLive |= program.IsLive; + dto.IsNews |= program.IsNews; + dto.IsKids |= program.IsKids; + dto.IsPremiere |= program.IsPremiere; if (hasChannelInfo || hasChannelImage) { - var channel = _libraryManager.GetItemById(program.ChannelId) as LiveTvChannel; + var channel = _libraryManager.GetItemById(program.ChannelId); - if (channel != null) + if (channel is LiveTvChannel liveChannel) { - dto.ChannelName = channel.Name; - dto.MediaType = channel.MediaType; - dto.ChannelNumber = channel.Number; + dto.ChannelName = liveChannel.Name; + dto.MediaType = liveChannel.MediaType; + dto.ChannelNumber = liveChannel.Number; - if (hasChannelImage && channel.HasImage(ImageType.Primary)) + if (hasChannelImage && liveChannel.HasImage(ImageType.Primary)) { - dto.ChannelPrimaryImageTag = _tvDtoService.GetImageTag(channel); + dto.ChannelPrimaryImageTag = _tvDtoService.GetImageTag(liveChannel); } } } - var externalSeriesId = program.ExternalSeriesId; - - programTuples.Add(new Tuple(dto, program.ExternalId, externalSeriesId)); + programTuples.Add(new Tuple(dto, program.ExternalId, program.ExternalSeriesId)); } return AddRecordingInfo(programTuples, CancellationToken.None); @@ -2037,19 +1960,13 @@ namespace Emby.Server.Implementations.LiveTv private async Task> GetNewTimerDefaultsInternal(CancellationToken cancellationToken, LiveTvProgram program = null) { - var service = program != null ? - GetService(program) : - null; - - if (service == null) - { - service = _services.First(); - } - + ILiveTvService service = null; ProgramInfo programInfo = null; - if (program != null) + if(program != null) { + service = GetService(program); + var channel = _libraryManager.GetItemById(program.ChannelId); programInfo = new ProgramInfo @@ -2077,6 +1994,11 @@ namespace Emby.Server.Implementations.LiveTv Name = program.Name, OfficialRating = program.OfficialRating }; + } + + if (service == null) + { + service = _services.First(); } var info = await service.GetNewTimerDefaultsAsync(cancellationToken, programInfo).ConfigureAwait(false); @@ -2147,8 +2069,7 @@ namespace Emby.Server.Implementations.LiveTv info.Priority = defaultValues.Priority; string newTimerId = null; - var supportsNewTimerIds = service as ISupportsNewTimerIds; - if (supportsNewTimerIds != null) + if (service is ISupportsNewTimerIds supportsNewTimerIds) { newTimerId = await supportsNewTimerIds.CreateTimer(info, cancellationToken).ConfigureAwait(false); newTimerId = _tvDtoService.GetInternalTimerId(newTimerId); @@ -2192,8 +2113,7 @@ namespace Emby.Server.Implementations.LiveTv info.Priority = defaultValues.Priority; string newTimerId = null; - var supportsNewTimerIds = service as ISupportsNewTimerIds; - if (supportsNewTimerIds != null) + if (service is ISupportsNewTimerIds supportsNewTimerIds) { newTimerId = await supportsNewTimerIds.CreateSeriesTimer(info, cancellationToken).ConfigureAwait(false); newTimerId = _tvDtoService.GetInternalSeriesTimerId(newTimerId).ToString("N"); @@ -2354,8 +2274,7 @@ namespace Emby.Server.Implementations.LiveTv throw new ResourceNotFoundException(); } - var configurable = provider as IConfigurableTunerHost; - if (configurable != null) + if (provider is IConfigurableTunerHost configurable) { await configurable.Validate(info).ConfigureAwait(false); } diff --git a/Emby.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs index b4d18b69cf..27741863b5 100644 --- a/Emby.Server.Implementations/Updates/InstallationManager.cs +++ b/Emby.Server.Implementations/Updates/InstallationManager.cs @@ -549,13 +549,13 @@ namespace Emby.Server.Implementations.Updates // Do plugin-specific processing if (isPlugin) { - if (plugin != null) + if (plugin == null) { - OnPluginUpdated(plugin, package); + OnPluginInstalled(package); } else { - OnPluginInstalled(package); + OnPluginUpdated(plugin, package); } } } diff --git a/MediaBrowser.Common/Net/IHttpClient.cs b/MediaBrowser.Common/Net/IHttpClient.cs index cf55119653..f88cfbb2b5 100644 --- a/MediaBrowser.Common/Net/IHttpClient.cs +++ b/MediaBrowser.Common/Net/IHttpClient.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading; +using System.IO; using System.Threading.Tasks; namespace MediaBrowser.Common.Net @@ -56,4 +53,4 @@ namespace MediaBrowser.Common.Net /// Task{HttpResponseInfo}. Task GetTempFileResponse(HttpRequestOptions options); } -} \ No newline at end of file +} -- cgit v1.2.3 From db62648510dbe1aa6adda3c88a7560615daa5188 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Thu, 3 Jan 2019 19:51:18 +0100 Subject: Remove firebase and empty resource config file --- Emby.Server.Implementations/ApplicationHost.cs | 47 -------- .../Session/FirebaseSessionController.cs | 131 --------------------- .../Session/SessionManager.cs | 13 -- MediaBrowser.Common/IApplicationHost.cs | 2 - MediaBrowser.Model/Session/ClientCapabilities.cs | 5 +- .../Music/MusicBrainzAlbumProvider.cs | 84 ++----------- MediaBrowser.Providers/Omdb/OmdbProvider.cs | 16 +-- 7 files changed, 12 insertions(+), 286 deletions(-) delete mode 100644 Emby.Server.Implementations/Session/FirebaseSessionController.cs (limited to 'MediaBrowser.Common') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 3cc6151f13..05398984bb 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -2437,53 +2437,6 @@ namespace Emby.Server.Implementations } } } - - private Dictionary _values; - public string GetValue(string name) - { - if (_values == null) - { - _values = LoadValues(); - } - - string value; - - if (_values.TryGetValue(name, out value)) - { - return value; - } - - return null; - } - - // TODO: @bond Remove? - private Dictionary LoadValues() - { - Dictionary values = new Dictionary(StringComparer.OrdinalIgnoreCase); - - using (var stream = typeof(ApplicationHost).Assembly.GetManifestResourceStream(typeof(ApplicationHost).Namespace + ".values.txt")) - { - using (var reader = new StreamReader(stream)) - { - while (!reader.EndOfStream) - { - var line = reader.ReadLine(); - if (string.IsNullOrEmpty(line)) - { - continue; - } - - var index = line.IndexOf('='); - if (index != -1) - { - values[line.Substring(0, index)] = line.Substring(index + 1); - } - } - } - } - - return values; - } } internal class CertificateInfo diff --git a/Emby.Server.Implementations/Session/FirebaseSessionController.cs b/Emby.Server.Implementations/Session/FirebaseSessionController.cs deleted file mode 100644 index cfe513305e..0000000000 --- a/Emby.Server.Implementations/Session/FirebaseSessionController.cs +++ /dev/null @@ -1,131 +0,0 @@ -using MediaBrowser.Controller.Session; -using MediaBrowser.Model.Net; -using MediaBrowser.Common.Net; -using MediaBrowser.Model.Serialization; -using System; -using System.Threading; -using System.Threading.Tasks; -using System.Text; -using MediaBrowser.Common; - -namespace Emby.Server.Implementations.Session -{ - public class FirebaseSessionController : ISessionController - { - private readonly IHttpClient _httpClient; - private readonly IJsonSerializer _json; - private readonly ISessionManager _sessionManager; - - public SessionInfo Session { get; private set; } - - private readonly string _token; - - private IApplicationHost _appHost; - private string _senderId; - private string _applicationId; - - public FirebaseSessionController(IHttpClient httpClient, - IApplicationHost appHost, - IJsonSerializer json, - SessionInfo session, - string token, ISessionManager sessionManager) - { - _httpClient = httpClient; - _json = json; - _appHost = appHost; - Session = session; - _token = token; - _sessionManager = sessionManager; - - _applicationId = _appHost.GetValue("firebase_applicationid"); - _senderId = _appHost.GetValue("firebase_senderid"); - } - - public static bool IsSupported(IApplicationHost appHost) - { - return !string.IsNullOrEmpty(appHost.GetValue("firebase_applicationid")) && !string.IsNullOrEmpty(appHost.GetValue("firebase_senderid")); - } - - public bool IsSessionActive - { - get - { - return (DateTime.UtcNow - Session.LastActivityDate).TotalDays <= 3; - } - } - - public bool SupportsMediaControl - { - get { return true; } - } - - public async Task SendMessage(string name, string messageId, T data, ISessionController[] allControllers, CancellationToken cancellationToken) - { - if (!IsSessionActive) - { - return; - } - - if (string.IsNullOrEmpty(_senderId) || string.IsNullOrEmpty(_applicationId)) - { - return; - } - - foreach (var controller in allControllers) - { - // Don't send if there's an active web socket connection - if ((controller is WebSocketController) && controller.IsSessionActive) - { - return; - } - } - - var msg = new WebSocketMessage - { - Data = data, - MessageType = name, - MessageId = messageId, - ServerId = _appHost.SystemId - }; - - var req = new FirebaseBody - { - to = _token, - data = msg - }; - - var byteArray = Encoding.UTF8.GetBytes(_json.SerializeToString(req)); - - var enableLogging = false; - -#if DEBUG - enableLogging = true; -#endif - - var options = new HttpRequestOptions - { - Url = "https://fcm.googleapis.com/fcm/send", - RequestContentType = "application/json", - RequestContentBytes = byteArray, - CancellationToken = cancellationToken, - LogRequest = enableLogging, - LogResponse = enableLogging, - LogErrors = enableLogging - }; - - options.RequestHeaders["Authorization"] = string.Format("key={0}", _applicationId); - options.RequestHeaders["Sender"] = string.Format("id={0}", _senderId); - - using (var response = await _httpClient.Post(options).ConfigureAwait(false)) - { - - } - } - } - - internal class FirebaseBody - { - public string to { get; set; } - public WebSocketMessage data { get; set; } - } -} diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index 2b2b3c6779..9911cd0c67 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -1577,14 +1577,6 @@ namespace Emby.Server.Implementations.Session { session.Capabilities = capabilities; - if (!string.IsNullOrEmpty(capabilities.PushToken)) - { - if (string.Equals(capabilities.PushTokenType, "firebase", StringComparison.OrdinalIgnoreCase) && FirebaseSessionController.IsSupported(_appHost)) - { - EnsureFirebaseController(session, capabilities.PushToken); - } - } - if (saveCapabilities) { EventHelper.FireEventIfNotNull(CapabilitiesChanged, this, new SessionEventArgs @@ -1604,11 +1596,6 @@ namespace Emby.Server.Implementations.Session } } - private void EnsureFirebaseController(SessionInfo session, string token) - { - session.EnsureController(s => new FirebaseSessionController(_httpClient, _appHost, _jsonSerializer, s, token, this)); - } - private ClientCapabilities GetSavedCapabilities(string deviceId) { return _deviceManager.GetCapabilities(deviceId); diff --git a/MediaBrowser.Common/IApplicationHost.cs b/MediaBrowser.Common/IApplicationHost.cs index 39d69ea15c..c4f760b151 100644 --- a/MediaBrowser.Common/IApplicationHost.cs +++ b/MediaBrowser.Common/IApplicationHost.cs @@ -135,7 +135,5 @@ namespace MediaBrowser.Common object CreateInstance(Type type); PackageVersionClass SystemUpdateLevel { get; } - - string GetValue(string name); } } diff --git a/MediaBrowser.Model/Session/ClientCapabilities.cs b/MediaBrowser.Model/Session/ClientCapabilities.cs index 0a780b9103..6860b29f9c 100644 --- a/MediaBrowser.Model/Session/ClientCapabilities.cs +++ b/MediaBrowser.Model/Session/ClientCapabilities.cs @@ -1,5 +1,4 @@ using MediaBrowser.Model.Dlna; -using System; namespace MediaBrowser.Model.Session { @@ -12,8 +11,6 @@ namespace MediaBrowser.Model.Session public bool SupportsMediaControl { get; set; } public bool SupportsContentUploading { get; set; } public string MessageCallbackUrl { get; set; } - public string PushToken { get; set; } - public string PushTokenType { get; set; } public bool SupportsPersistentIdentifier { get; set; } public bool SupportsSync { get; set; } @@ -30,4 +27,4 @@ namespace MediaBrowser.Model.Session SupportsPersistentIdentifier = true; } } -} \ No newline at end of file +} diff --git a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs index 0dbc433136..2c94d6a070 100644 --- a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs +++ b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs @@ -720,82 +720,6 @@ namespace MediaBrowser.Providers.Music return null; } - private long _lastMbzUrlQueryTicks = 0; - private List _mbzUrls = null; - private MbzUrl _chosenUrl; - - private async Task GetMbzUrl(bool forceMusicBrainzProper = false) - { - if (_chosenUrl == null || _mbzUrls == null || (DateTime.UtcNow.Ticks - _lastMbzUrlQueryTicks) > TimeSpan.FromHours(12).Ticks) - { - var urls = await RefreshMzbUrls(forceMusicBrainzProper).ConfigureAwait(false); - - if (urls.Count > 1) - { - _chosenUrl = urls[new Random().Next(0, urls.Count)]; - } - else - { - _chosenUrl = urls[0]; - } - } - - return _chosenUrl; - } - - private async Task> RefreshMzbUrls(bool forceMusicBrainzProper = false) - { - List list = null; - - if (!forceMusicBrainzProper) - { - var musicbrainzadminurl = _appHost.GetValue("musicbrainzadminurl"); - - if (!string.IsNullOrEmpty(musicbrainzadminurl)) - { - try - { - var options = new HttpRequestOptions - { - Url = musicbrainzadminurl, - UserAgent = _appHost.Name + "/" + _appHost.ApplicationVersion - }; - - using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) - { - using (var stream = response.Content) - { - var results = await _json.DeserializeFromStreamAsync>(stream).ConfigureAwait(false); - - list = results; - } - } - _lastMbzUrlQueryTicks = DateTime.UtcNow.Ticks; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error getting music brainz info"); - } - } - } - - if (list == null) - { - list = new List - { - new MbzUrl - { - url = MusicBrainzBaseUrl, - throttleMs = 1000 - } - }; - } - - _mbzUrls = list.ToList(); - - return list; - } - internal Task GetMusicBrainzResponse(string url, bool isSearch, CancellationToken cancellationToken) { return GetMusicBrainzResponse(url, isSearch, false, cancellationToken); @@ -806,7 +730,7 @@ namespace MediaBrowser.Providers.Music /// internal async Task GetMusicBrainzResponse(string url, bool isSearch, bool forceMusicBrainzProper, CancellationToken cancellationToken) { - var urlInfo = await GetMbzUrl(forceMusicBrainzProper).ConfigureAwait(false); + var urlInfo = new MbzUrl(MusicBrainzBaseUrl, 1000); var throttleMs = urlInfo.throttleMs; if (throttleMs > 0) @@ -841,6 +765,12 @@ namespace MediaBrowser.Providers.Music internal class MbzUrl { + internal MbzUrl(string url, int throttleMs) + { + this.url = url; + this.throttleMs = throttleMs; + } + public string url { get; set; } public int throttleMs { get; set; } } diff --git a/MediaBrowser.Providers/Omdb/OmdbProvider.cs b/MediaBrowser.Providers/Omdb/OmdbProvider.cs index 5c4eb62a8b..bb4624b5c0 100644 --- a/MediaBrowser.Providers/Omdb/OmdbProvider.cs +++ b/MediaBrowser.Providers/Omdb/OmdbProvider.cs @@ -270,21 +270,13 @@ namespace MediaBrowser.Providers.Omdb public static string GetOmdbUrl(string query, IApplicationHost appHost, CancellationToken cancellationToken) { - var baseUrl = appHost.GetValue("omdb_baseurl"); + const string url = "https://www.omdbapi.com?apikey=fe53f97e"; - if (string.IsNullOrEmpty(baseUrl)) + if (string.IsNullOrWhiteSpace(query)) { - baseUrl = "https://www.omdbapi.com"; + return url; } - - var url = baseUrl + "?apikey=fe53f97e"; - - if (!string.IsNullOrWhiteSpace(query)) - { - url += "&" + query; - } - - return url; + return url + "&" + query; } private async Task EnsureItemInfo(string imdbId, CancellationToken cancellationToken) -- cgit v1.2.3 From 391b48614d598b5fbfad68b610520a5ae7a57b70 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Fri, 28 Dec 2018 15:21:02 +0100 Subject: Remove FireEventIfNotNull It's a pretty useless "helper" class --- Emby.Dlna/Ssdp/DeviceDiscovery.cs | 4 +- .../Activity/ActivityManager.cs | 2 +- .../AppBase/BaseConfigurationManager.cs | 10 ++--- Emby.Server.Implementations/ApplicationHost.cs | 7 ++-- .../Collections/CollectionManager.cs | 15 +++---- .../Configuration/ServerConfigurationManager.cs | 2 +- .../Devices/DeviceManager.cs | 4 +- .../HttpServer/HttpListenerHost.cs | 2 +- .../HttpServer/WebSocketConnection.cs | 2 +- Emby.Server.Implementations/IO/FileRefresher.cs | 2 +- .../Library/UserDataManager.cs | 5 +-- Emby.Server.Implementations/Library/UserManager.cs | 17 ++++---- .../LiveTv/EmbyTV/TimerManager.cs | 4 +- .../LiveTv/LiveTvManager.cs | 24 +++++------ .../ScheduledTasks/ScheduledTaskWorker.cs | 5 +-- .../ScheduledTasks/TaskManager.cs | 10 ++--- .../Session/SessionManager.cs | 19 ++++----- .../Updates/InstallationManager.cs | 17 ++++---- Jellyfin.Server/SocketSharp/SharpWebSocket.cs | 6 +-- MediaBrowser.Common/Events/EventHelper.cs | 46 +--------------------- .../Subtitles/SubtitleManager.cs | 5 +-- 21 files changed, 73 insertions(+), 135 deletions(-) (limited to 'MediaBrowser.Common') diff --git a/Emby.Dlna/Ssdp/DeviceDiscovery.cs b/Emby.Dlna/Ssdp/DeviceDiscovery.cs index 85dc4d94f5..d91f711d2f 100644 --- a/Emby.Dlna/Ssdp/DeviceDiscovery.cs +++ b/Emby.Dlna/Ssdp/DeviceDiscovery.cs @@ -119,7 +119,7 @@ namespace Emby.Dlna.Ssdp } }; - EventHelper.FireEventIfNotNull(DeviceDiscoveredInternal, this, args, _logger); + DeviceDiscoveredInternal?.Invoke(this, args); } private void _DeviceLocator_DeviceUnavailable(object sender, DeviceUnavailableEventArgs e) @@ -139,7 +139,7 @@ namespace Emby.Dlna.Ssdp } }; - EventHelper.FireEventIfNotNull(DeviceLeft, this, args, _logger); + DeviceLeft?.Invoke(this, args); } public void Dispose() diff --git a/Emby.Server.Implementations/Activity/ActivityManager.cs b/Emby.Server.Implementations/Activity/ActivityManager.cs index b0c8413978..a67e475e2b 100644 --- a/Emby.Server.Implementations/Activity/ActivityManager.cs +++ b/Emby.Server.Implementations/Activity/ActivityManager.cs @@ -30,7 +30,7 @@ namespace Emby.Server.Implementations.Activity _repo.Create(entry); - EventHelper.FireEventIfNotNull(EntryCreated, this, new GenericEventArgs(entry), _logger); + EntryCreated?.Invoke(this, new GenericEventArgs(entry)); } public QueryResult 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 fddf19893f..bc5168fe83 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 80e9b6b502..2368519685 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -2265,7 +2265,7 @@ namespace Emby.Server.Implementations if (fireEvent) { - EventHelper.FireEventIfNotNull(HasUpdateAvailableChanged, this, EventArgs.Empty, Logger); + HasUpdateAvailableChanged?.Invoke(this, EventArgs.Empty); } } } @@ -2381,11 +2381,10 @@ namespace Emby.Server.Implementations { Logger.LogInformation("Application has been updated to version {0}", package.versionStr); - EventHelper.FireEventIfNotNull(ApplicationUpdated, this, new GenericEventArgs + ApplicationUpdated?.Invoke(this, new GenericEventArgs { Argument = package - - }, Logger); + }); NotifyPendingRestart(); } diff --git a/Emby.Server.Implementations/Collections/CollectionManager.cs b/Emby.Server.Implementations/Collections/CollectionManager.cs index d1afb0712a..d1d7931360 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 CollapseItemsWithinBoxSets(IEnumerable items, User user) diff --git a/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs b/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs index 26a7c421fb..80a17a784f 100644 --- a/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs +++ b/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs @@ -143,7 +143,7 @@ namespace Emby.Server.Implementations.Configuration ValidateMetadataPath(newConfig); ValidateSslCertificate(newConfig); - EventHelper.FireEventIfNotNull(ConfigurationUpdating, this, new GenericEventArgs { Argument = newConfig }, Logger); + ConfigurationUpdating?.Invoke(this, new GenericEventArgs { Argument = newConfig }); base.ReplaceConfiguration(newConfiguration); } diff --git a/Emby.Server.Implementations/Devices/DeviceManager.cs b/Emby.Server.Implementations/Devices/DeviceManager.cs index 82df96d8b5..f73521d0a0 100644 --- a/Emby.Server.Implementations/Devices/DeviceManager.cs +++ b/Emby.Server.Implementations/Devices/DeviceManager.cs @@ -254,14 +254,14 @@ namespace Emby.Server.Implementations.Devices if (CameraImageUploaded != null) { - EventHelper.FireEventIfNotNull(CameraImageUploaded, this, new GenericEventArgs + CameraImageUploaded?.Invoke(this, new GenericEventArgs { 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 704b7f8a6f..66b930a807 100644 --- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -184,7 +184,7 @@ namespace Emby.Server.Implementations.HttpServer if (WebSocketConnected != null) { - EventHelper.FireEventIfNotNull(WebSocketConnected, this, new GenericEventArgs(connection), _logger); + WebSocketConnected?.Invoke(this, new GenericEventArgs(connection)); } } diff --git a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs index 8b5dfd4440..095675ec41 100644 --- a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs +++ b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs @@ -118,7 +118,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); } /// diff --git a/Emby.Server.Implementations/IO/FileRefresher.cs b/Emby.Server.Implementations/IO/FileRefresher.cs index df484d04c7..8c2a937a0b 100644 --- a/Emby.Server.Implementations/IO/FileRefresher.cs +++ b/Emby.Server.Implementations/IO/FileRefresher.cs @@ -133,7 +133,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 62371799b6..d4e94244b7 100644 --- a/Emby.Server.Implementations/Library/UserDataManager.cs +++ b/Emby.Server.Implementations/Library/UserDataManager.cs @@ -77,15 +77,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); + }); } /// diff --git a/Emby.Server.Implementations/Library/UserManager.cs b/Emby.Server.Implementations/Library/UserManager.cs index ed1fe87917..679116fc0a 100644 --- a/Emby.Server.Implementations/Library/UserManager.cs +++ b/Emby.Server.Implementations/Library/UserManager.cs @@ -134,7 +134,7 @@ namespace Emby.Server.Implementations.Library /// The user. private void OnUserUpdated(User user) { - EventHelper.FireEventIfNotNull(UserUpdated, this, new GenericEventArgs { Argument = user }, _logger); + UserUpdated?.Invoke(this, new GenericEventArgs { Argument = user }); } #endregion @@ -149,7 +149,7 @@ namespace Emby.Server.Implementations.Library /// The user. private void OnUserDeleted(User user) { - EventHelper.FireEventIfNotNull(UserDeleted, this, new GenericEventArgs { Argument = user }, _logger); + UserDeleted?.Invoke(this, new GenericEventArgs { Argument = user }); } #endregion @@ -470,10 +470,7 @@ namespace Emby.Server.Implementations.Library if (fireLockout) { - if (UserLockedOut != null) - { - EventHelper.FireEventIfNotNull(UserLockedOut, this, new GenericEventArgs(user), _logger); - } + UserLockedOut?.Invoke(this, new GenericEventArgs(user)); } } } @@ -819,7 +816,7 @@ namespace Emby.Server.Implementations.Library UpdateUser(user); - EventHelper.FireEventIfNotNull(UserPasswordChanged, this, new GenericEventArgs(user), _logger); + UserPasswordChanged?.Invoke(this, new GenericEventArgs(user)); } public void ChangeEasyPassword(User user, string newPassword, string newPasswordHash) @@ -843,7 +840,7 @@ namespace Emby.Server.Implementations.Library UpdateUser(user); - EventHelper.FireEventIfNotNull(UserPasswordChanged, this, new GenericEventArgs(user), _logger); + UserPasswordChanged?.Invoke(this, new GenericEventArgs(user)); } /// @@ -1087,7 +1084,7 @@ namespace Emby.Server.Implementations.Library if (fireEvent) { - EventHelper.FireEventIfNotNull(UserPolicyUpdated, this, new GenericEventArgs { Argument = user }, _logger); + UserPolicyUpdated?.Invoke(this, new GenericEventArgs { Argument = user }); } } @@ -1182,7 +1179,7 @@ namespace Emby.Server.Implementations.Library if (fireEvent) { - EventHelper.FireEventIfNotNull(UserConfigurationUpdated, this, new GenericEventArgs { Argument = user }, _logger); + UserConfigurationUpdated?.Invoke(this, new GenericEventArgs { Argument = user }); } } } diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs index 5618579f6f..7c705c70b0 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs @@ -122,7 +122,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV if (startDate < now) { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs { Argument = item }, base.Logger); + TimerFired?.Invoke(this, new GenericEventArgs { Argument = item }); return; } @@ -178,7 +178,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 { Argument = timer }, base.Logger); + TimerFired?.Invoke(this, new GenericEventArgs { Argument = timer }); } } diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs index a4ffbd2fe8..5e6c17413a 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs @@ -144,13 +144,13 @@ namespace Emby.Server.Implementations.LiveTv { var timerId = e.Argument; - EventHelper.FireEventIfNotNull(TimerCancelled, this, new GenericEventArgs + TimerCancelled?.Invoke(this, new GenericEventArgs { Argument = new TimerEventInfo { Id = timerId } - }, _logger); + }); } private void EmbyTv_TimerCreated(object sender, GenericEventArgs e) @@ -158,14 +158,14 @@ namespace Emby.Server.Implementations.LiveTv var timer = e.Argument; var service = sender as ILiveTvService; - EventHelper.FireEventIfNotNull(TimerCreated, this, new GenericEventArgs + TimerCreated?.Invoke(this, new GenericEventArgs { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(timer.ProgramId), Id = timer.Id } - }, _logger); + }); } public ITunerHost[] TunerHosts @@ -1734,13 +1734,13 @@ namespace Emby.Server.Implementations.LiveTv if (!(service is EmbyTV.EmbyTV)) { - EventHelper.FireEventIfNotNull(TimerCancelled, this, new GenericEventArgs + TimerCancelled?.Invoke(this, new GenericEventArgs { Argument = new TimerEventInfo { Id = id } - }, _logger); + }); } } @@ -1757,13 +1757,13 @@ namespace Emby.Server.Implementations.LiveTv await service.CancelSeriesTimerAsync(timer.ExternalId, CancellationToken.None).ConfigureAwait(false); - EventHelper.FireEventIfNotNull(SeriesTimerCancelled, this, new GenericEventArgs + SeriesTimerCancelled?.Invoke(this, new GenericEventArgs { Argument = new TimerEventInfo { Id = id } - }, _logger); + }); } public async Task GetTimer(string id, CancellationToken cancellationToken) @@ -2083,14 +2083,14 @@ namespace Emby.Server.Implementations.LiveTv if (!(service is EmbyTV.EmbyTV)) { - EventHelper.FireEventIfNotNull(TimerCreated, this, new GenericEventArgs + TimerCreated?.Invoke(this, new GenericEventArgs { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(info.ProgramId), Id = newTimerId } - }, _logger); + }); } } @@ -2123,14 +2123,14 @@ namespace Emby.Server.Implementations.LiveTv await service.CreateSeriesTimerAsync(info, cancellationToken).ConfigureAwait(false); } - EventHelper.FireEventIfNotNull(SeriesTimerCreated, this, new GenericEventArgs + SeriesTimerCreated?.Invoke(this, new GenericEventArgs { 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/ScheduledTasks/ScheduledTaskWorker.cs b/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs index 7c2ce4af3a..c7b43cf578 100644 --- a/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs +++ b/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs @@ -465,11 +465,10 @@ namespace Emby.Server.Implementations.ScheduledTasks CurrentProgress = e; - EventHelper.FireEventIfNotNull(TaskProgress, this, new GenericEventArgs + TaskProgress?.Invoke(this, new GenericEventArgs { Argument = e - - }, Logger); + }); } /// diff --git a/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs b/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs index 0322583dcc..c4b6e92e36 100644 --- a/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs +++ b/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs @@ -331,11 +331,10 @@ namespace Emby.Server.Implementations.ScheduledTasks /// The task. internal void OnTaskExecuting(IScheduledTaskWorker task) { - EventHelper.FireEventIfNotNull(TaskExecuting, this, new GenericEventArgs + TaskExecuting?.Invoke(this, new GenericEventArgs { Argument = task - - }, Logger); + }); } /// @@ -345,12 +344,11 @@ namespace Emby.Server.Implementations.ScheduledTasks /// The result. 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 2b2b3c6779..eeb15b3056 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -255,11 +255,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 +692,7 @@ namespace Emby.Server.Implementations.Session } } - EventHelper.FireEventIfNotNull(PlaybackProgress, this, new PlaybackProgressEventArgs + PlaybackProgress?.Invoke(this, new PlaybackProgressEventArgs { Item = libraryItem, Users = users, @@ -707,8 +706,7 @@ namespace Emby.Server.Implementations.Session PlaySessionId = info.PlaySessionId, IsAutomated = isAutomated, Session = session - - }, _logger); + }); if (!isAutomated) { @@ -1399,7 +1397,7 @@ namespace Emby.Server.Implementations.Session if (result == null) { - EventHelper.FireEventIfNotNull(AuthenticationFailed, this, new GenericEventArgs(request), _logger); + AuthenticationFailed?.Invoke(this, new GenericEventArgs(request)); throw new SecurityException("Invalid user or password entered."); } @@ -1424,7 +1422,7 @@ namespace Emby.Server.Implementations.Session ServerId = _appHost.SystemId }; - EventHelper.FireEventIfNotNull(AuthenticationSucceeded, this, new GenericEventArgs(returnResult), _logger); + AuthenticationSucceeded?.Invoke(this, new GenericEventArgs(returnResult)); return returnResult; } @@ -1587,11 +1585,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/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs index 27741863b5..bf47b63ea1 100644 --- a/Emby.Server.Implementations/Updates/InstallationManager.cs +++ b/Emby.Server.Implementations/Updates/InstallationManager.cs @@ -60,7 +60,7 @@ namespace Emby.Server.Implementations.Updates /// The plugin. private void OnPluginUninstalled(IPlugin plugin) { - EventHelper.FireEventIfNotNull(PluginUninstalled, this, new GenericEventArgs { Argument = plugin }, _logger); + PluginUninstalled?.Invoke(this, new GenericEventArgs { Argument = plugin }); } #endregion @@ -78,7 +78,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> { Argument = new Tuple(plugin, newVersion) }, _logger); + PluginUpdated?.Invoke(this, new GenericEventArgs> { Argument = new Tuple(plugin, newVersion) }); _applicationHost.NotifyPendingRestart(); } @@ -97,7 +97,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 { Argument = package }, _logger); + PluginInstalled?.Invoke(this, new GenericEventArgs { Argument = package }); _applicationHost.NotifyPendingRestart(); } @@ -469,7 +469,7 @@ namespace Emby.Server.Implementations.Updates PackageVersionInfo = package }; - EventHelper.FireEventIfNotNull(PackageInstalling, this, installationEventArgs, _logger); + PackageInstalling?.Invoke(this, installationEventArgs); try { @@ -482,7 +482,7 @@ namespace Emby.Server.Implementations.Updates CompletedInstallationsInternal.Add(installationInfo); - EventHelper.FireEventIfNotNull(PackageInstallationCompleted, this, installationEventArgs, _logger); + PackageInstallationCompleted?.Invoke(this, installationEventArgs); } catch (OperationCanceledException) { @@ -493,7 +493,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 +506,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; } diff --git a/Jellyfin.Server/SocketSharp/SharpWebSocket.cs b/Jellyfin.Server/SocketSharp/SharpWebSocket.cs index 1c72035a55..056dabd175 100644 --- a/Jellyfin.Server/SocketSharp/SharpWebSocket.cs +++ b/Jellyfin.Server/SocketSharp/SharpWebSocket.cs @@ -55,15 +55,15 @@ namespace Jellyfin.SocketSharp void socket_OnError(object sender, SocketHttpListener.ErrorEventArgs e) { - _logger.LogError("Error in SharpWebSocket: {0}", e.Message ?? string.Empty); - //EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger); + _logger.LogError("Error in SharpWebSocket: {Message}", e.Message ?? string.Empty); + //Closed?.Invoke(this, EventArgs.Empty); } void socket_OnClose(object sender, SocketHttpListener.CloseEventArgs e) { _taskCompletionSource.TrySetResult(true); - EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger); + Closed?.Invoke(this, EventArgs.Empty); } void socket_OnMessage(object sender, SocketHttpListener.MessageEventArgs e) diff --git a/MediaBrowser.Common/Events/EventHelper.cs b/MediaBrowser.Common/Events/EventHelper.cs index 04a2270e3d..2630ce7da9 100644 --- a/MediaBrowser.Common/Events/EventHelper.cs +++ b/MediaBrowser.Common/Events/EventHelper.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; namespace MediaBrowser.Common.Events { + // TODO: @bond Remove /// /// Class EventHelper /// @@ -59,50 +60,5 @@ namespace MediaBrowser.Common.Events }); } } - - /// - /// Fires the event. - /// - /// The handler. - /// The sender. - /// The instance containing the event data. - /// The logger. - public static void FireEventIfNotNull(EventHandler handler, object sender, EventArgs args, ILogger logger) - { - if (handler != null) - { - try - { - handler(sender, args); - } - catch (Exception ex) - { - logger.LogError(ex, "Error in event handler"); - } - } - } - - /// - /// Fires the event. - /// - /// - /// The handler. - /// The sender. - /// The args. - /// The logger. - public static void FireEventIfNotNull(EventHandler handler, object sender, T args, ILogger logger) - { - if (handler != null) - { - try - { - handler(sender, args); - } - catch (Exception ex) - { - logger.LogError(ex, "Error in event handler"); - } - } - } } } diff --git a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs index 2cf737511d..4f08d2150e 100644 --- a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs +++ b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs @@ -189,13 +189,12 @@ namespace MediaBrowser.Providers.Subtitles } catch (Exception ex) { - EventHelper.FireEventIfNotNull(SubtitleDownloadFailure, this, new SubtitleDownloadFailureEventArgs + SubtitleDownloadFailure?.Invoke(this, new SubtitleDownloadFailureEventArgs { Item = video, Exception = ex, Provider = provider.Name - - }, _logger); + }); throw; } -- cgit v1.2.3