ILocalMetadataProvider.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Model.Entities;
  3. using System.Collections.Generic;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. namespace MediaBrowser.Controller.Providers
  7. {
  8. public interface ILocalMetadataProvider : IMetadataProvider
  9. {
  10. }
  11. public interface ILocalMetadataProvider<TItemType> : IMetadataProvider<TItemType>, ILocalMetadataProvider
  12. where TItemType : IHasMetadata
  13. {
  14. /// <summary>
  15. /// Gets the metadata.
  16. /// </summary>
  17. /// <param name="info">The information.</param>
  18. /// <param name="directoryService">The directory service.</param>
  19. /// <param name="cancellationToken">The cancellation token.</param>
  20. /// <returns>Task{MetadataResult{`0}}.</returns>
  21. Task<LocalMetadataResult<TItemType>> GetMetadata(ItemInfo info,
  22. IDirectoryService directoryService,
  23. CancellationToken cancellationToken);
  24. }
  25. public class ItemInfo
  26. {
  27. public string Path { get; set; }
  28. public bool IsInMixedFolder { get; set; }
  29. }
  30. public class LocalMetadataResult<T>
  31. where T : IHasMetadata
  32. {
  33. public bool HasMetadata { get; set; }
  34. public T Item { get; set; }
  35. public List<LocalImageInfo> Images { get; set; }
  36. public List<ChapterInfo> Chapters { get; set; }
  37. public List<UserItemData> UserDataLIst { get; set; }
  38. public LocalMetadataResult()
  39. {
  40. Images = new List<LocalImageInfo>();
  41. Chapters = new List<ChapterInfo>();
  42. UserDataLIst = new List<UserItemData>();
  43. }
  44. }
  45. }