PluginsHandler.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using MediaBrowser.Common.Net.Handlers;
  2. using MediaBrowser.Controller;
  3. using MediaBrowser.Model.DTO;
  4. using System.Collections.Generic;
  5. using System.ComponentModel.Composition;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Threading.Tasks;
  9. namespace MediaBrowser.Api.HttpHandlers
  10. {
  11. /// <summary>
  12. /// Provides information about installed plugins
  13. /// </summary>
  14. [Export(typeof(BaseHandler))]
  15. public class PluginsHandler : BaseSerializationHandler<IEnumerable<PluginInfo>>
  16. {
  17. public override bool HandlesRequest(HttpListenerRequest request)
  18. {
  19. return ApiService.IsApiUrlMatch("plugins", request);
  20. }
  21. protected override Task<IEnumerable<PluginInfo>> GetObjectToSerialize()
  22. {
  23. var plugins = Kernel.Instance.Plugins.Select(p => new PluginInfo
  24. {
  25. Name = p.Name,
  26. Enabled = p.Enabled,
  27. DownloadToUI = p.DownloadToUi,
  28. Version = p.Version.ToString(),
  29. AssemblyFileName = p.AssemblyFileName,
  30. ConfigurationDateLastModified = p.ConfigurationDateLastModified
  31. });
  32. return Task.FromResult(plugins);
  33. }
  34. }
  35. }