From 6facd745ec6bece39cad48abf7f0afacd56ed4f1 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Sun, 1 May 2022 21:24:14 -0500 Subject: [PATCH] fix extracting embedded mov_text subtitles (#777) * fix extracting embedded mov_text subtitles * changelog * cleanup --- CHANGELOG.md | 2 ++ .../Commands/ExtractEmbeddedSubtitlesHandler.cs | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ea65946f..efc8aa7e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Support combination NFO metadata for movies, shows, artists and music videos - Note that ErsatzTV does not scrape any metadata; any URLs after the XML will be ignored - Fix bug causing some Jellyfin and Emby content to incorrectly show as unavailable +- Fix extracting embedded `mov_text` subtitles +- Properly extract embedded subtitles on playouts where subtitles are only enabled on schedule items (and not on the channel itself) ### Added - Use `Sort Title` from Movie NFO metadata if available diff --git a/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs b/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs index 2a34019d3..ef0db6178 100644 --- a/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs +++ b/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs @@ -68,7 +68,9 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler requestedPlayout = await dbContext.Playouts - .Filter(p => p.Channel.SubtitleMode != ChannelSubtitleMode.None) + .Filter( + p => p.Channel.SubtitleMode != ChannelSubtitleMode.None || + p.ProgramSchedule.Items.Any(psi => psi.SubtitleMode != ChannelSubtitleMode.None)) .SelectOneAsync(p => p.Id, p => p.Id == request.PlayoutId.IfNone(-1)); playoutIdsToCheck.AddRange(requestedPlayout.Map(p => p.Id)); @@ -77,7 +79,9 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler p.Channel.SubtitleMode != ChannelSubtitleMode.None) + .Filter( + p => p.Channel.SubtitleMode != ChannelSubtitleMode.None || + p.ProgramSchedule.Items.Any(psi => psi.SubtitleMode != ChannelSubtitleMode.None)) .Map(p => p.Id) .ToList(); } @@ -285,7 +289,8 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler $"{name}.srt", "ass" => $"{name}.ass", "webvtt" => $"{name}.vtt", + "mov_text" => $"{name}.srt", _ => string.Empty };