FolderProviderFromXml.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System.ComponentModel.Composition;
  2. using System.Threading.Tasks;
  3. using MediaBrowser.Controller.Events;
  4. using MediaBrowser.Controller.Xml;
  5. using MediaBrowser.Model.Entities;
  6. namespace MediaBrowser.Controller.Providers
  7. {
  8. [Export(typeof(BaseMetadataProvider))]
  9. public class FolderProviderFromXml : BaseMetadataProvider
  10. {
  11. public override bool Supports(BaseEntity item)
  12. {
  13. return item is Folder;
  14. }
  15. public override MetadataProviderPriority Priority
  16. {
  17. get { return MetadataProviderPriority.First; }
  18. }
  19. public override Task FetchAsync(BaseEntity item, ItemResolveEventArgs args)
  20. {
  21. var metadataFile = args.GetFileSystemEntryByName("folder.xml");
  22. if (metadataFile.HasValue)
  23. {
  24. return Task.Run(() => { new FolderXmlParser().Fetch(item as Folder, metadataFile.Value.Path); });
  25. }
  26. return Task.FromResult<object>(null);
  27. }
  28. }
  29. }