aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorShadowghost <Shadowghost@users.noreply.github.com>2024-05-17 13:51:40 -0400
committerJoshua M. Boniface <joshua@boniface.me>2024-05-17 13:51:40 -0400
commit29a293f9e78e61d464e18b6d74ba32152eaa01ce (patch)
tree110a556cfc7379eeea1ec49a0218af23f956aa64 /MediaBrowser.Controller
parent77c3ddc7caf0c1544502d0e742ad3f07f5c2db75 (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.cs27
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);