diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Series.cs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index a49c1609d..d200721b2 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -25,10 +25,12 @@ namespace MediaBrowser.Controller.Entities.TV /// </summary> public class Series : Folder, IHasTrailers, IHasDisplayOrder, IHasLookupInfo<SeriesInfo>, IMetadataContainer { + private readonly Dictionary<int, string> _seasonNames; + public Series() { AirDays = Array.Empty<DayOfWeek>(); - SeasonNames = new Dictionary<int, string>(); + _seasonNames = new Dictionary<int, string>(); } public DayOfWeek[] AirDays { get; set; } @@ -36,9 +38,6 @@ namespace MediaBrowser.Controller.Entities.TV public string AirTime { get; set; } [JsonIgnore] - public Dictionary<int, string> SeasonNames { get; set; } - - [JsonIgnore] public override bool SupportsAddingToPlaylist => true; [JsonIgnore] @@ -213,6 +212,26 @@ namespace MediaBrowser.Controller.Entities.TV return LibraryManager.GetItemList(query); } + public Dictionary<int, string> GetSeasonNames() + { + var newSeasons = Children.OfType<Season>() + .Where(s => s.IndexNumber.HasValue) + .Where(s => !_seasonNames.ContainsKey(s.IndexNumber.Value)) + .DistinctBy(s => s.IndexNumber); + + foreach (var season in newSeasons) + { + SetSeasonName(season.IndexNumber.Value, season.Name); + } + + return _seasonNames; + } + + public void SetSeasonName(int index, string name) + { + _seasonNames[index] = name; + } + private void SetSeasonQueryOptions(InternalItemsQuery query, User user) { var seriesKey = GetUniqueSeriesKey(this); |
