Trailer.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using MediaBrowser.Controller.Providers;
  2. using MediaBrowser.Model.Configuration;
  3. using MediaBrowser.Model.Entities;
  4. using System.Collections.Generic;
  5. using MediaBrowser.Model.Providers;
  6. using MediaBrowser.Model.Serialization;
  7. namespace MediaBrowser.Controller.Entities
  8. {
  9. /// <summary>
  10. /// Class Trailer
  11. /// </summary>
  12. public class Trailer : Video, IHasLookupInfo<TrailerInfo>
  13. {
  14. public Trailer()
  15. {
  16. RemoteTrailers = new List<MediaUrl>();
  17. Keywords = new List<string>();
  18. TrailerTypes = new List<TrailerType> { TrailerType.LocalTrailer };
  19. }
  20. public List<TrailerType> TrailerTypes { get; set; }
  21. public List<MediaUrl> RemoteTrailers { get; set; }
  22. [IgnoreDataMember]
  23. public bool IsLocalTrailer
  24. {
  25. get { return TrailerTypes.Contains(TrailerType.LocalTrailer); }
  26. }
  27. public override double? GetDefaultPrimaryImageAspectRatio()
  28. {
  29. double value = 2;
  30. value /= 3;
  31. return value;
  32. }
  33. public override UnratedItem GetBlockUnratedType()
  34. {
  35. return UnratedItem.Trailer;
  36. }
  37. public TrailerInfo GetLookupInfo()
  38. {
  39. var info = GetItemLookupInfo<TrailerInfo>();
  40. info.IsLocalTrailer = TrailerTypes.Contains(TrailerType.LocalTrailer);
  41. if (!DetectIsInMixedFolder() && LocationType == LocationType.FileSystem)
  42. {
  43. info.Name = System.IO.Path.GetFileName(ContainingFolderPath);
  44. }
  45. return info;
  46. }
  47. public override bool BeforeMetadataRefresh()
  48. {
  49. var hasChanges = base.BeforeMetadataRefresh();
  50. if (!ProductionYear.HasValue)
  51. {
  52. var info = LibraryManager.ParseName(Name);
  53. var yearInName = info.Year;
  54. if (yearInName.HasValue)
  55. {
  56. ProductionYear = yearInName;
  57. hasChanges = true;
  58. }
  59. else
  60. {
  61. // Try to get the year from the folder name
  62. if (!DetectIsInMixedFolder())
  63. {
  64. info = LibraryManager.ParseName(System.IO.Path.GetFileName(ContainingFolderPath));
  65. yearInName = info.Year;
  66. if (yearInName.HasValue)
  67. {
  68. ProductionYear = yearInName;
  69. hasChanges = true;
  70. }
  71. }
  72. }
  73. }
  74. return hasChanges;
  75. }
  76. public override List<ExternalUrl> GetRelatedUrls()
  77. {
  78. var list = base.GetRelatedUrls();
  79. var imdbId = this.GetProviderId(MetadataProviders.Imdb);
  80. if (!string.IsNullOrWhiteSpace(imdbId))
  81. {
  82. list.Add(new ExternalUrl
  83. {
  84. Name = "Trakt",
  85. Url = string.Format("https://trakt.tv/movies/{0}", imdbId)
  86. });
  87. }
  88. return list;
  89. }
  90. [IgnoreDataMember]
  91. public override bool StopRefreshIfLocalMetadataFound
  92. {
  93. get
  94. {
  95. // Need people id's from internet metadata
  96. return false;
  97. }
  98. }
  99. }
  100. }