diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs index 370cec58d7..17822fb54f 100644 --- a/MediaBrowser.Api/PluginService.cs +++ b/MediaBrowser.Api/PluginService.cs @@ -75,7 +75,7 @@ namespace MediaBrowser.Api /// The request stream. public Stream RequestStream { get; set; } } - + //TODO Once we have proper apps and plugins and decide to break compatibility with paid plugins, // delete all these registration endpoints. They are only kept for compatibility. [Route("/Registrations/{Name}", "GET", Summary = "Gets registration status for a feature", IsHidden = true)] @@ -85,7 +85,7 @@ namespace MediaBrowser.Api [ApiMember(Name = "Name", Description = "Feature Name", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] public string Name { get; set; } } - + /// /// Class GetPluginSecurityInfo /// @@ -94,7 +94,7 @@ namespace MediaBrowser.Api public class GetPluginSecurityInfo : IReturn { } - + /// /// Class UpdatePluginSecurityInfo /// @@ -103,7 +103,7 @@ namespace MediaBrowser.Api public class UpdatePluginSecurityInfo : PluginSecurityInfo, IReturnVoid { } - + [Route("/Plugins/RegistrationRecords/{Name}", "GET", Summary = "Gets registration status for a feature", IsHidden = true)] [Authenticated] public class GetRegistrationStatus @@ -111,7 +111,7 @@ namespace MediaBrowser.Api [ApiMember(Name = "Name", Description = "Feature Name", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] public string Name { get; set; } } - + // TODO these two classes are only kept for compability with paid plugins and should be removed public class RegistrationInfo { @@ -120,7 +120,7 @@ namespace MediaBrowser.Api public bool IsTrial { get; set; } public bool IsRegistered { get; set; } } - + public class MBRegistrationRecord { public DateTime ExpirationDate { get; set; } @@ -130,7 +130,7 @@ namespace MediaBrowser.Api public bool TrialVersion { get; set; } public bool IsValid { get; set; } } - + public class PluginSecurityInfo { public string SupporterKey { get; set; } @@ -168,7 +168,7 @@ namespace MediaBrowser.Api _deviceManager = deviceManager; _jsonSerializer = jsonSerializer; } - + /// /// Gets the specified request. /// @@ -184,13 +184,13 @@ namespace MediaBrowser.Api IsValid = true, RegError = false }; - + return ToOptimizedResult(record); } - + //TODO this function is only kept for compatibility and should be removed once paid plugins break public async Task Get(GetRegistration request) - { + { var info = new RegistrationInfo { ExpirationDate = DateTime.Now.AddYears(100), @@ -198,10 +198,10 @@ namespace MediaBrowser.Api IsTrial = false, Name = request.Name }; - + return ToOptimizedResult(info); } - + /// /// Gets the specified request. /// @@ -209,46 +209,7 @@ namespace MediaBrowser.Api /// System.Object. public async Task Get(GetPlugins request) { - // TODO This code can be reused for a proper Jellyfin plugin store (maybe). Remove/reuse when decided. - var result = _appHost.Plugins.OrderBy(p => p.Name).Select(p => p.GetPluginInfo()).ToArray(); -// var requireAppStoreEnabled = request.IsAppStoreEnabled.HasValue && request.IsAppStoreEnabled.Value; -// -// // Don't fail just on account of image url's -// try -// { -// var packages = (await _installationManager.GetAvailablePackagesWithoutRegistrationInfo(CancellationToken.None)); -// -// foreach (var plugin in result) -// { -// var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && string.Equals(i.guid.Replace("-", string.Empty), plugin.Id.Replace("-", string.Empty), StringComparison.OrdinalIgnoreCase)); -// -// if (pkg != null) -// { -// plugin.ImageUrl = pkg.thumbImage; -// } -// } -// -// if (requireAppStoreEnabled) -// { -// result = result -// .Where(plugin => -// { -// var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && new Guid(plugin.Id).Equals(new Guid(i.guid))); -// return pkg != null && pkg.enableInAppStore; -// -// }) -// .ToArray(); -// } -// } -// catch (Exception ex) -// { -// Logger.LogError(ex, "Error getting plugin list"); -// // Play it safe here -// if (requireAppStoreEnabled) -// { -// result = new PluginInfo[] { }; -// } -// } + var result = _appHost.Plugins.OrderBy(p => p.Name).Select(p => p.GetPluginInfo()).ToArray(); return ToOptimizedResult(result); } @@ -264,7 +225,7 @@ namespace MediaBrowser.Api return ToOptimizedResult(plugin.Configuration); } - + /// /// Gets the specified request. /// @@ -277,10 +238,10 @@ namespace MediaBrowser.Api IsMBSupporter = true, SupporterKey = "IAmTotallyLegit" }; - + return ToOptimizedResult(result); } - + /// /// Posts the specified request. /// @@ -289,7 +250,7 @@ namespace MediaBrowser.Api { return Task.CompletedTask; } - + /// /// Posts the specified request. ///