VirtualFolderResolver.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.ComponentModel.Composition;
  2. using System.IO;
  3. using MediaBrowser.Controller.Events;
  4. using MediaBrowser.Model.Entities;
  5. namespace MediaBrowser.Controller.Resolvers
  6. {
  7. [Export(typeof(IBaseItemResolver))]
  8. public class VirtualFolderResolver : BaseFolderResolver<VirtualFolder>
  9. {
  10. protected override VirtualFolder Resolve(ItemResolveEventArgs args)
  11. {
  12. if (args.IsFolder && args.Parent != null && args.Parent.IsRoot)
  13. {
  14. return new VirtualFolder();
  15. }
  16. return null;
  17. }
  18. protected override void SetInitialItemValues(VirtualFolder item, ItemResolveEventArgs args)
  19. {
  20. // Set the name initially by stripping off the [CollectionType=...]
  21. // The name can always be overridden later by folder.xml
  22. string pathName = Path.GetFileNameWithoutExtension(args.Path);
  23. string srch = "[collectiontype=";
  24. int index = pathName.IndexOf(srch, System.StringComparison.OrdinalIgnoreCase);
  25. if (index != -1)
  26. {
  27. item.Name = pathName.Substring(0, index).Trim();
  28. item.CollectionType = pathName.Substring(index + srch.Length).TrimEnd(']');
  29. }
  30. base.SetInitialItemValues(item, args);
  31. }
  32. }
  33. }