fix some invalid external subtitle data (#2451)
This commit is contained in:
@@ -66,6 +66,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
- Fix slow startup caused by check for overlapping playout items
|
||||
- Fix green line in *most* cases when overlaying content using NVIDIA acceleration and H264 output
|
||||
- Fix non-SRT (e.g. SSA/ASS) external subtitle playback from media servers
|
||||
- Clean up some invalid external subtitle data to prevent playback failures
|
||||
|
||||
### Changed
|
||||
- Filler presets: use separate text fields for `hours`, `minutes` and `seconds` duration
|
||||
|
||||
@@ -328,11 +328,11 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler<ExtractEmbeddedSu
|
||||
{
|
||||
foreach (SubtitleToExtract subtitle in subtitlesToExtract)
|
||||
{
|
||||
subtitle.Subtitle.IsExtracted = true;
|
||||
subtitle.Subtitle.Path = subtitle.OutputPath;
|
||||
await dbContext.Connection.ExecuteAsync(
|
||||
"UPDATE `Subtitle` SET `IsExtracted` = 1, `Path` = @Path WHERE `Id` = @SubtitleId",
|
||||
new { SubtitleId = subtitle.Subtitle.Id, Path = subtitle.OutputPath });
|
||||
}
|
||||
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
_logger.LogDebug("Successfully extracted {Count} subtitles", subtitlesToExtract.Count);
|
||||
}
|
||||
else
|
||||
@@ -358,6 +358,7 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler<ExtractEmbeddedSu
|
||||
int mediaItemId,
|
||||
CancellationToken cancellationToken) =>
|
||||
await dbContext.MediaItems
|
||||
.AsNoTracking()
|
||||
.Include(mi => (mi as Episode).MediaVersions)
|
||||
.ThenInclude(mv => mv.MediaFiles)
|
||||
.Include(mi => (mi as Episode).MediaVersions)
|
||||
|
||||
@@ -31,6 +31,7 @@ public class DatabaseCleanerService(
|
||||
|
||||
await DeleteInvalidMediaItems(dbContext);
|
||||
await GenerateFallbackMetadata(scope, dbContext, stoppingToken);
|
||||
await ResetExternalSubtitleState(dbContext, stoppingToken);
|
||||
|
||||
systemStartup.DatabaseIsCleaned();
|
||||
|
||||
@@ -82,4 +83,11 @@ public class DatabaseCleanerService(
|
||||
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
}
|
||||
|
||||
private static async Task ResetExternalSubtitleState(TvContext dbContext, CancellationToken cancellationToken)
|
||||
{
|
||||
await dbContext.Database.ExecuteSqlRawAsync(
|
||||
"UPDATE `Subtitle` SET `IsExtracted`=0 WHERE `Path` IS NULL",
|
||||
cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user