PluginConfigurationHandler.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using MediaBrowser.Common.Net.Handlers;
  5. using MediaBrowser.Common.Plugins;
  6. using MediaBrowser.Controller;
  7. using MediaBrowser.Model.Plugins;
  8. namespace MediaBrowser.Api.HttpHandlers
  9. {
  10. public class PluginConfigurationHandler : BaseSerializationHandler<BasePluginConfiguration>
  11. {
  12. private BasePlugin _Plugin = null;
  13. private BasePlugin Plugin
  14. {
  15. get
  16. {
  17. if (_Plugin == null)
  18. {
  19. string name = QueryString["assemblyfilename"];
  20. _Plugin = Kernel.Instance.Plugins.First(p => p.AssemblyFileName.Equals(name, StringComparison.OrdinalIgnoreCase));
  21. }
  22. return _Plugin;
  23. }
  24. }
  25. protected override Task<BasePluginConfiguration> GetObjectToSerialize()
  26. {
  27. return Task.FromResult<BasePluginConfiguration>(Plugin.Configuration);
  28. }
  29. public override TimeSpan CacheDuration
  30. {
  31. get
  32. {
  33. return TimeSpan.FromDays(7);
  34. }
  35. }
  36. protected override Task<DateTime?> GetLastDateModified()
  37. {
  38. return Task.FromResult<DateTime?>(Plugin.ConfigurationDateLastModified);
  39. }
  40. }
  41. }