EpisodeResolver.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using MediaBrowser.Controller.Entities.TV;
  2. using MediaBrowser.Controller.Library;
  3. using MediaBrowser.Model.Entities;
  4. using System;
  5. namespace MediaBrowser.Controller.Resolvers.TV
  6. {
  7. /// <summary>
  8. /// Class EpisodeResolver
  9. /// </summary>
  10. public class EpisodeResolver : BaseVideoResolver<Episode>
  11. {
  12. /// <summary>
  13. /// Resolves the specified args.
  14. /// </summary>
  15. /// <param name="args">The args.</param>
  16. /// <returns>Episode.</returns>
  17. protected override Episode Resolve(ItemResolveArgs args)
  18. {
  19. // If the parent is a Season or Series, then this is an Episode if the VideoResolver returns something
  20. if (args.Parent is Season || args.Parent is Series)
  21. {
  22. if (args.IsDirectory)
  23. {
  24. if (args.ContainsFileSystemEntryByName("video_ts"))
  25. {
  26. return new Episode
  27. {
  28. Path = args.Path,
  29. VideoType = VideoType.Dvd
  30. };
  31. }
  32. if (args.ContainsFileSystemEntryByName("bdmv"))
  33. {
  34. return new Episode
  35. {
  36. Path = args.Path,
  37. VideoType = VideoType.BluRay
  38. };
  39. }
  40. }
  41. return base.Resolve(args);
  42. }
  43. return null;
  44. }
  45. /// <summary>
  46. /// Sets the initial item values.
  47. /// </summary>
  48. /// <param name="item">The item.</param>
  49. /// <param name="args">The args.</param>
  50. protected override void SetInitialItemValues(Episode item, ItemResolveArgs args)
  51. {
  52. base.SetInitialItemValues(item, args);
  53. //fill in our season and series ids
  54. var season = args.Parent as Season;
  55. if (season != null)
  56. {
  57. item.SeasonItemId = season.Id;
  58. var series = season.Parent as Series;
  59. if (series != null)
  60. {
  61. item.SeriesItemId = series.Id;
  62. }
  63. }
  64. else
  65. {
  66. var series = args.Parent as Series;
  67. item.SeriesItemId = series != null ? series.Id : Guid.Empty;
  68. }
  69. }
  70. }
  71. }