| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | using MediaBrowser.Controller.Providers;using MediaBrowser.Model.Configuration;using MediaBrowser.Model.Entities;using System.Collections.Generic;using System.Runtime.Serialization;using MediaBrowser.Model.Providers;namespace MediaBrowser.Controller.Entities{    /// <summary>    /// Class Trailer    /// </summary>    public class Trailer : Video, IHasCriticRating, IHasProductionLocations, IHasBudget, IHasTaglines, IHasMetascore, IHasOriginalTitle, IHasLookupInfo<TrailerInfo>    {        public List<string> ProductionLocations { get; set; }        public Trailer()        {            RemoteTrailers = new List<MediaUrl>();            Taglines = new List<string>();            Keywords = new List<string>();            ProductionLocations = new List<string>();            TrailerTypes = new List<TrailerType> { TrailerType.LocalTrailer };        }        public List<TrailerType> TrailerTypes { get; set; }        public float? Metascore { get; set; }        public List<MediaUrl> RemoteTrailers { get; set; }        [IgnoreDataMember]        public bool IsLocalTrailer        {            get { return TrailerTypes.Contains(TrailerType.LocalTrailer); }        }        /// <summary>        /// Gets or sets the taglines.        /// </summary>        /// <value>The taglines.</value>        public List<string> Taglines { get; set; }        /// <summary>        /// Gets or sets the budget.        /// </summary>        /// <value>The budget.</value>        public double? Budget { get; set; }        /// <summary>        /// Gets or sets the revenue.        /// </summary>        /// <value>The revenue.</value>        public double? Revenue { get; set; }        public override UnratedItem GetBlockUnratedType()        {            return UnratedItem.Trailer;        }        public TrailerInfo GetLookupInfo()        {            var info = GetItemLookupInfo<TrailerInfo>();            info.IsLocalTrailer = TrailerTypes.Contains(TrailerType.LocalTrailer);            if (!IsInMixedFolder)            {                info.Name = System.IO.Path.GetFileName(ContainingFolderPath);            }            return info;        }        public override bool BeforeMetadataRefresh()        {            var hasChanges = base.BeforeMetadataRefresh();            if (!ProductionYear.HasValue)            {                var info = LibraryManager.ParseName(Name);                var yearInName = info.Year;                if (yearInName.HasValue)                {                    ProductionYear = yearInName;                    hasChanges = true;                }                else                {                    // Try to get the year from the folder name                    if (!IsInMixedFolder)                    {                        info = LibraryManager.ParseName(System.IO.Path.GetFileName(ContainingFolderPath));                        yearInName = info.Year;                        if (yearInName.HasValue)                        {                            ProductionYear = yearInName;                            hasChanges = true;                        }                    }                }            }            return hasChanges;        }        public override List<ExternalUrl> GetRelatedUrls()        {            var list = base.GetRelatedUrls();            var imdbId = this.GetProviderId(MetadataProviders.Imdb);            if (!string.IsNullOrWhiteSpace(imdbId))            {                list.Add(new ExternalUrl                {                    Name = "Trakt",                    Url = string.Format("https://trakt.tv/movies/{0}", imdbId)                });            }            return list;        }        [IgnoreDataMember]        public override bool StopRefreshIfLocalMetadataFound        {            get            {                // Need people id's from internet metadata                return false;            }        }    }}
 |