2
0

FolderResolver.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using System.Linq;
  4. using MediaBrowser.Controller.Events;
  5. using MediaBrowser.Model.Entities;
  6. using MediaBrowser.Controller.Xml;
  7. namespace MediaBrowser.Controller.Resolvers
  8. {
  9. public class FolderResolver : BaseFolderResolver<Folder>
  10. {
  11. protected override Folder Resolve(ItemResolveEventArgs args)
  12. {
  13. if (args.IsFolder)
  14. {
  15. return new Folder();
  16. }
  17. return null;
  18. }
  19. }
  20. public abstract class BaseFolderResolver<T> : BaseItemResolver<T>
  21. where T : Folder, new ()
  22. {
  23. protected override void SetItemValues(T item, ItemResolveEventArgs args)
  24. {
  25. base.SetItemValues(item, args);
  26. item.IsRoot = args.Parent == null;
  27. PopulateFolderMetadata(item, args);
  28. }
  29. private void PopulateFolderMetadata(Folder folder, ItemResolveEventArgs args)
  30. {
  31. var metadataFile = args.GetFileByName("folder.xml");
  32. if (metadataFile.HasValue)
  33. {
  34. new FolderXmlParser().Fetch(folder, metadataFile.Value.Key);
  35. }
  36. }
  37. }
  38. }