ChapterManager.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using MediaBrowser.Common.Configuration;
  2. using MediaBrowser.Common.Extensions;
  3. using MediaBrowser.Controller.Chapters;
  4. using MediaBrowser.Controller.Configuration;
  5. using MediaBrowser.Controller.Entities;
  6. using MediaBrowser.Controller.Entities.Movies;
  7. using MediaBrowser.Controller.Entities.TV;
  8. using MediaBrowser.Controller.Library;
  9. using MediaBrowser.Controller.Persistence;
  10. using MediaBrowser.Controller.Providers;
  11. using MediaBrowser.Model.Configuration;
  12. using MediaBrowser.Model.Entities;
  13. using MediaBrowser.Model.Logging;
  14. using System;
  15. using System.Collections.Generic;
  16. using System.Linq;
  17. using System.Threading;
  18. using System.Threading.Tasks;
  19. namespace MediaBrowser.Providers.Chapters
  20. {
  21. public class ChapterManager : IChapterManager
  22. {
  23. private readonly ILibraryManager _libraryManager;
  24. private readonly ILogger _logger;
  25. private readonly IServerConfigurationManager _config;
  26. private readonly IItemRepository _itemRepo;
  27. public ChapterManager(ILibraryManager libraryManager, ILogger logger, IServerConfigurationManager config, IItemRepository itemRepo)
  28. {
  29. _libraryManager = libraryManager;
  30. _logger = logger;
  31. _config = config;
  32. _itemRepo = itemRepo;
  33. }
  34. public IEnumerable<ChapterInfo> GetChapters(string itemId)
  35. {
  36. return _itemRepo.GetChapters(new Guid(itemId));
  37. }
  38. public Task SaveChapters(string itemId, List<ChapterInfo> chapters, CancellationToken cancellationToken)
  39. {
  40. return _itemRepo.SaveChapters(new Guid(itemId), chapters, cancellationToken);
  41. }
  42. public ChapterOptions GetConfiguration()
  43. {
  44. return _config.GetConfiguration<ChapterOptions>("chapters");
  45. }
  46. }
  47. public class ChapterConfigurationStore : IConfigurationFactory
  48. {
  49. public IEnumerable<ConfigurationStore> GetConfigurations()
  50. {
  51. return new List<ConfigurationStore>
  52. {
  53. new ConfigurationStore
  54. {
  55. Key = "chapters",
  56. ConfigurationType = typeof (ChapterOptions)
  57. }
  58. };
  59. }
  60. }
  61. }