SeriesResolver.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.ComponentModel.Composition;
  3. using System.IO;
  4. using MediaBrowser.Controller.Events;
  5. using MediaBrowser.Controller.Resolvers;
  6. using MediaBrowser.TV.Entities;
  7. namespace MediaBrowser.TV.Resolvers
  8. {
  9. [Export(typeof(IBaseItemResolver))]
  10. public class SeriesResolver : BaseFolderResolver<Series>
  11. {
  12. protected override Series Resolve(ItemResolveEventArgs args)
  13. {
  14. if (args.IsFolder && (args.VirtualFolderCollectionType ?? string.Empty).Equals("TV", StringComparison.OrdinalIgnoreCase))
  15. {
  16. // Optimization to avoid running these tests against VF's
  17. if (args.Parent != null && args.Parent.IsRoot)
  18. {
  19. return null;
  20. }
  21. // Optimization to avoid running these tests against Seasons
  22. if (args.Parent is Series)
  23. {
  24. return null;
  25. }
  26. var metadataFile = args.GetFileByName("series.xml");
  27. if (metadataFile.HasValue || Path.GetFileName(args.Path).IndexOf("[tvdbid=", StringComparison.OrdinalIgnoreCase) != -1 || TVUtils.IsSeriesFolder(args.Path, args.FileSystemChildren))
  28. {
  29. return new Series();
  30. }
  31. }
  32. return null;
  33. }
  34. }
  35. }