diff options
| author | Shadowghost <Shadowghost@users.noreply.github.com> | 2024-05-17 13:51:40 -0400 |
|---|---|---|
| committer | Joshua M. Boniface <joshua@boniface.me> | 2024-05-17 13:51:40 -0400 |
| commit | 29a293f9e78e61d464e18b6d74ba32152eaa01ce (patch) | |
| tree | 110a556cfc7379eeea1ec49a0218af23f956aa64 /MediaBrowser.Controller | |
| parent | 77c3ddc7caf0c1544502d0e742ad3f07f5c2db75 (diff) | |
Backport pull request #11647 from jellyfin/release-10.9.z
Fix season names
Original-merge: 2da06bc0b10edcdb43618684396828afa4100b44
Merged-by: joshuaboniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
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); |
