2
0

FolderProviderFromXml.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Library;
  3. using System.ComponentModel.Composition;
  4. using System.IO;
  5. using System.Threading.Tasks;
  6. namespace MediaBrowser.Controller.Providers
  7. {
  8. /// <summary>
  9. /// Provides metadata for Folders and all subclasses by parsing folder.xml
  10. /// </summary>
  11. [Export(typeof(BaseMetadataProvider))]
  12. public class FolderProviderFromXml : BaseMetadataProvider
  13. {
  14. public override bool Supports(BaseEntity item)
  15. {
  16. return item is Folder;
  17. }
  18. public override MetadataProviderPriority Priority
  19. {
  20. get { return MetadataProviderPriority.First; }
  21. }
  22. public async override Task FetchAsync(BaseEntity item, ItemResolveEventArgs args)
  23. {
  24. if (args.ContainsFile("folder.xml"))
  25. {
  26. await Task.Run(() => Fetch(item, args)).ConfigureAwait(false);
  27. }
  28. }
  29. private void Fetch(BaseEntity item, ItemResolveEventArgs args)
  30. {
  31. new BaseItemXmlParser<Folder>().Fetch(item as Folder, Path.Combine(args.Path, "folder.xml"));
  32. }
  33. }
  34. }