using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Naming.Common; using MediaBrowser.Naming.TV; namespace Emby.Server.Implementations.Library.Resolvers.TV { /// /// Class SeasonResolver /// public class SeasonResolver : FolderResolver { /// /// The _config /// private readonly IServerConfigurationManager _config; private readonly ILibraryManager _libraryManager; /// /// Initializes a new instance of the class. /// /// The config. public SeasonResolver(IServerConfigurationManager config, ILibraryManager libraryManager) { _config = config; _libraryManager = libraryManager; } /// /// Resolves the specified args. /// /// The args. /// Season. protected override Season Resolve(ItemResolveArgs args) { if (args.Parent is Series && args.IsDirectory) { var namingOptions = ((LibraryManager)_libraryManager).GetNamingOptions(); var series = ((Series)args.Parent); var season = new Season { IndexNumber = new SeasonPathParser(namingOptions, new RegexProvider()).Parse(args.Path, true, true).SeasonNumber, SeriesId = series.Id, SeriesSortName = series.SortName, SeriesName = series.Name }; if (season.IndexNumber.HasValue && season.IndexNumber.Value == 0) { season.Name = _config.Configuration.SeasonZeroDisplayName; } return season; } return null; } } }