aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/PluginService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/PluginService.cs')
-rw-r--r--MediaBrowser.Api/PluginService.cs20
1 files changed, 19 insertions, 1 deletions
diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs
index 4bd78f1f5..2fbf65f3f 100644
--- a/MediaBrowser.Api/PluginService.cs
+++ b/MediaBrowser.Api/PluginService.cs
@@ -25,6 +25,7 @@ namespace MediaBrowser.Api
[Authenticated]
public class GetPlugins : IReturn<List<PluginInfo>>
{
+ public bool? IsAppStoreEnabled { get; set; }
}
/// <summary>
@@ -181,6 +182,7 @@ namespace MediaBrowser.Api
public async Task<object> Get(GetPlugins request)
{
var result = _appHost.Plugins.OrderBy(p => p.Name).Select(p => p.GetPluginInfo()).ToList();
+ var requireAppStoreEnabled = request.IsAppStoreEnabled.HasValue && request.IsAppStoreEnabled.Value;
// Don't fail just on account of image url's
try
@@ -197,10 +199,26 @@ namespace MediaBrowser.Api
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;
+
+ })
+ .ToList();
+ }
}
catch
{
-
+ // Play it safe here
+ if (requireAppStoreEnabled)
+ {
+ result = new List<PluginInfo>();
+ }
}
return ToOptimizedSerializedResultUsingCache(result);