using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using System; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Providers.TV { class SeasonIndexNumberProvider : BaseMetadataProvider { /// /// Initializes a new instance of the class. /// /// The log manager. /// The configuration manager. public SeasonIndexNumberProvider(ILogManager logManager, IServerConfigurationManager configurationManager) : base(logManager, configurationManager) { } protected override bool RefreshOnVersionChange { get { return true; } } protected override string ProviderVersion { get { return "2"; } } /// /// Supportses the specified item. /// /// The item. /// true if XXXX, false otherwise public override bool Supports(BaseItem item) { if (item is Season) { var locationType = item.LocationType; return locationType != LocationType.Virtual && locationType != LocationType.Remote; } return false; } /// /// Fetches metadata and returns true or false indicating if any work that requires persistence was done /// /// The item. /// if set to true [force]. /// The provider information. /// The cancellation token. /// Task{System.Boolean}. public override Task FetchAsync(BaseItem item, bool force, BaseProviderInfo providerInfo, CancellationToken cancellationToken) { item.IndexNumber = TVUtils.GetSeasonNumberFromPath(item.Path); SetLastRefreshed(item, DateTime.UtcNow, providerInfo); return TrueTaskResult; } /// /// Gets the priority. /// /// The priority. public override MetadataProviderPriority Priority { get { return MetadataProviderPriority.First; } } } }