LocalTrailerResolver.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Library;
  3. using MediaBrowser.Controller.Resolvers;
  4. using System;
  5. using System.IO;
  6. namespace MediaBrowser.Server.Implementations.Library.Resolvers
  7. {
  8. /// <summary>
  9. /// Class LocalTrailerResolver
  10. /// </summary>
  11. public class LocalTrailerResolver : BaseVideoResolver<Trailer>
  12. {
  13. /// <summary>
  14. /// Resolves the specified args.
  15. /// </summary>
  16. /// <param name="args">The args.</param>
  17. /// <returns>Trailer.</returns>
  18. protected override Trailer Resolve(ItemResolveArgs args)
  19. {
  20. // Trailers are not Children, therefore this can never happen
  21. if (args.Parent != null)
  22. {
  23. return null;
  24. }
  25. // If the file is within a trailers folder, see if the VideoResolver returns something
  26. if (!args.IsDirectory)
  27. {
  28. if (string.Equals(Path.GetFileName(Path.GetDirectoryName(args.Path)), BaseItem.TrailerFolderName, StringComparison.OrdinalIgnoreCase))
  29. {
  30. return base.Resolve(args);
  31. }
  32. // Support xbmc local trailer convention, but only when looking for local trailers (hence the parent == null check)
  33. if (args.Parent == null && Path.GetFileNameWithoutExtension(args.Path).EndsWith(BaseItem.XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase))
  34. {
  35. return base.Resolve(args);
  36. }
  37. }
  38. return null;
  39. }
  40. }
  41. }