From 73f48f3fe86ccb22c06ee9bdaeb7e3f2a16e3d9a Mon Sep 17 00:00:00 2001 From: Kevin Jilissen Date: Sun, 12 Jan 2025 12:24:45 +0100 Subject: [PATCH 1/2] Deliver actual series and seasons from channel --- Jellyfin.Xtream/SeriesChannel.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Jellyfin.Xtream/SeriesChannel.cs b/Jellyfin.Xtream/SeriesChannel.cs index a0f1e8e..4ff603e 100644 --- a/Jellyfin.Xtream/SeriesChannel.cs +++ b/Jellyfin.Xtream/SeriesChannel.cs @@ -35,7 +35,7 @@ namespace Jellyfin.Xtream; /// The Xtream Codes API channel. /// /// Instance of the interface. -public class SeriesChannel(ILogger logger) : IChannel +public class SeriesChannel(ILogger logger) : IChannel, IDisableMediaSourceDisplay { /// public string? Name => "Xtream Series"; @@ -132,11 +132,12 @@ public class SeriesChannel(ILogger logger) : IChannel { CommunityRating = (float)series.Rating5Based, DateModified = series.LastModified, - // FolderType = ChannelFolderType.Series, + FolderType = ChannelFolderType.Series, Genres = GetGenres(series.Genre), Id = StreamService.ToGuid(StreamService.SeriesPrefix, series.CategoryId, series.SeriesId, 0).ToString(), ImageUrl = series.Cover, Name = parsedName.Title, + SeriesName = parsedName.Title, People = GetPeople(series.Cast), Tags = new List(parsedName.Tags), Type = ChannelItemType.Folder, @@ -182,10 +183,11 @@ public class SeriesChannel(ILogger logger) : IChannel return new() { DateCreated = created, - // FolderType = ChannelFolderType.Season, + FolderType = ChannelFolderType.Season, Genres = GetGenres(serie.Genre), Id = StreamService.ToGuid(StreamService.SeasonPrefix, serie.CategoryId, seriesId, seasonId).ToString(), ImageUrl = cover, + IndexNumber = seasonId, Name = name, Overview = overview, People = GetPeople(serie.Cast), @@ -220,11 +222,13 @@ public class SeriesChannel(ILogger logger) : IChannel Genres = GetGenres(serie.Genre), Id = StreamService.ToGuid(StreamService.EpisodePrefix, 0, 0, episode.EpisodeId).ToString(), ImageUrl = cover, + IndexNumber = episode.EpisodeNum, IsLiveStream = false, MediaSources = sources, MediaType = ChannelMediaType.Video, - Name = parsedName.Title, + Name = $"Episode {episode.EpisodeNum}", Overview = episode.Info?.Plot, + ParentIndexNumber = episode.Season, People = GetPeople(serie.Cast), Tags = new(parsedName.Tags), Type = ChannelItemType.Media, -- 2.51.0 From 7c5a036946781181c837e6e50a11d92f16819d00 Mon Sep 17 00:00:00 2001 From: Kevin Jilissen Date: Sun, 12 Jan 2025 12:25:33 +0100 Subject: [PATCH 2/2] Remove season and episode images Removing them forces Jellyfin to use the metadata provider to get correct season and episode images --- Jellyfin.Xtream/SeriesChannel.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jellyfin.Xtream/SeriesChannel.cs b/Jellyfin.Xtream/SeriesChannel.cs index 4ff603e..2b634bd 100644 --- a/Jellyfin.Xtream/SeriesChannel.cs +++ b/Jellyfin.Xtream/SeriesChannel.cs @@ -186,7 +186,6 @@ public class SeriesChannel(ILogger logger) : IChannel, IDisableMe FolderType = ChannelFolderType.Season, Genres = GetGenres(serie.Genre), Id = StreamService.ToGuid(StreamService.SeasonPrefix, serie.CategoryId, seriesId, seasonId).ToString(), - ImageUrl = cover, IndexNumber = seasonId, Name = name, Overview = overview, @@ -221,7 +220,6 @@ public class SeriesChannel(ILogger logger) : IChannel, IDisableMe DateCreated = DateTimeOffset.FromUnixTimeSeconds(episode.Added).DateTime, Genres = GetGenres(serie.Genre), Id = StreamService.ToGuid(StreamService.EpisodePrefix, 0, 0, episode.EpisodeId).ToString(), - ImageUrl = cover, IndexNumber = episode.EpisodeNum, IsLiveStream = false, MediaSources = sources, -- 2.51.0