CoreResolutionIgnoreRule.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using MediaBrowser.Controller.Library;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using MediaBrowser.Controller.Resolvers;
  6. namespace MediaBrowser.Server.Implementations.Library
  7. {
  8. /// <summary>
  9. /// Provides the core resolver ignore rules
  10. /// </summary>
  11. public class CoreResolutionIgnoreRule : IResolverIgnoreRule
  12. {
  13. /// <summary>
  14. /// Any folder named in this list will be ignored - can be added to at runtime for extensibility
  15. /// </summary>
  16. private static readonly List<string> IgnoreFolders = new List<string>
  17. {
  18. "trailers",
  19. "metadata",
  20. "certificate",
  21. "backup",
  22. "ps3_update",
  23. "ps3_vprm",
  24. "adv_obj",
  25. "extrafanart"
  26. };
  27. /// <summary>
  28. /// Shoulds the ignore.
  29. /// </summary>
  30. /// <param name="args">The args.</param>
  31. /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
  32. public bool ShouldIgnore(ItemResolveArgs args)
  33. {
  34. // Ignore hidden files and folders
  35. if (args.IsHidden)
  36. {
  37. return true;
  38. }
  39. if (args.IsDirectory)
  40. {
  41. var filename = args.FileInfo.cFileName;
  42. // Ignore any folders in our list
  43. if (IgnoreFolders.Contains(filename, StringComparer.OrdinalIgnoreCase))
  44. {
  45. return true;
  46. }
  47. }
  48. return false;
  49. }
  50. }
  51. }