From 9fbfc785a8d775446898d4c4f8a626f978a419c4 Mon Sep 17 00:00:00 2001 From: Mikal Stordal Date: Thu, 2 May 2024 05:43:30 +0200 Subject: [PATCH] misc: add more special featurettes detections - Add more special featurettes detections, but this time for the 'other' type episodes. --- Shokofin/API/Info/SeasonInfo.cs | 5 ++++- Shokofin/Utils/Ordering.cs | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Shokofin/API/Info/SeasonInfo.cs b/Shokofin/API/Info/SeasonInfo.cs index f90614e7..2eb8e514 100644 --- a/Shokofin/API/Info/SeasonInfo.cs +++ b/Shokofin/API/Info/SeasonInfo.cs @@ -121,7 +121,10 @@ public SeasonInfo(Series series, DateTime? earliestImportedAt, DateTime? lastImp lastNormalEpisode = index; break; case EpisodeType.Other: - altEpisodesList.Add(episode); + if (episode.ExtraType != null) + extrasList.Add(episode); + else + altEpisodesList.Add(episode); break; default: if (episode.ExtraType != null) { diff --git a/Shokofin/Utils/Ordering.cs b/Shokofin/Utils/Ordering.cs index 91ba4e55..35e1562a 100644 --- a/Shokofin/Utils/Ordering.cs +++ b/Shokofin/Utils/Ordering.cs @@ -254,7 +254,6 @@ public static int GetSeasonNumber(ShowInfo showInfo, SeasonInfo seasonInfo, Epis switch (episode.Type) { case EpisodeType.Normal: - case EpisodeType.Other: return null; case EpisodeType.ThemeSong: case EpisodeType.OpeningSong: @@ -262,6 +261,21 @@ public static int GetSeasonNumber(ShowInfo showInfo, SeasonInfo seasonInfo, Epis return ExtraType.ThemeVideo; case EpisodeType.Trailer: return ExtraType.Trailer; + case EpisodeType.Other: { + var title = Text.GetTitlesForLanguage(episode.Titles, false, "en"); + if (string.IsNullOrEmpty(title)) + return null; + // Interview + if (title.Contains("interview", System.StringComparison.OrdinalIgnoreCase)) + return ExtraType.Interview; + // Cinema/theatrical intro/outro + if ( + (title.StartsWith("cinema ", System.StringComparison.OrdinalIgnoreCase) || title.StartsWith("theatrical ", System.StringComparison.OrdinalIgnoreCase)) && + (title.Contains("intro", System.StringComparison.OrdinalIgnoreCase) || title.Contains("outro", System.StringComparison.OrdinalIgnoreCase)) + ) + return ExtraType.Clip; + return null; + } case EpisodeType.Special: { var title = Text.GetTitlesForLanguage(episode.Titles, false, "en"); if (string.IsNullOrEmpty(title))