Browse Source

simplify music video credits config (#983)

pull/984/head
Jason Dove 3 years ago committed by GitHub
parent
commit
2e400c0d22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      ErsatzTV.Application/Streaming/Queries/GetPlayoutItemProcessByChannelNumberHandler.cs
  2. 3
      ErsatzTV.Core/Domain/ChannelMusicVideoCreditsMode.cs
  3. 3
      ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs
  4. 4309
      ErsatzTV.Infrastructure/Migrations/20221008111001_Fix_ChannelMusicVideoCreditsTemplate.Designer.cs
  5. 18
      ErsatzTV.Infrastructure/Migrations/20221008111001_Fix_ChannelMusicVideoCreditsTemplate.cs
  6. 3
      ErsatzTV/Pages/ChannelEditor.razor
  7. 2
      ErsatzTV/ViewModels/ChannelEditViewModel.cs

14
ErsatzTV.Application/Streaming/Queries/GetPlayoutItemProcessByChannelNumberHandler.cs

@ -327,10 +327,6 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
switch (channel.MusicVideoCreditsMode) switch (channel.MusicVideoCreditsMode)
{ {
case ChannelMusicVideoCreditsMode.GenerateSubtitles: case ChannelMusicVideoCreditsMode.GenerateSubtitles:
subtitles.AddRange(
await _musicVideoCreditsGenerator.GenerateCreditsSubtitle(musicVideo, channel.FFmpegProfile));
break;
case ChannelMusicVideoCreditsMode.TemplateSubtitles:
var fileWithExtension = $"{channel.MusicVideoCreditsTemplate}.sbntxt"; var fileWithExtension = $"{channel.MusicVideoCreditsTemplate}.sbntxt";
if (!string.IsNullOrWhiteSpace(fileWithExtension)) if (!string.IsNullOrWhiteSpace(fileWithExtension))
{ {
@ -340,6 +336,16 @@ public class GetPlayoutItemProcessByChannelNumberHandler : FFmpegProcessHandler<
channel.FFmpegProfile, channel.FFmpegProfile,
Path.Combine(FileSystemLayout.MusicVideoCreditsTemplatesFolder, fileWithExtension))); Path.Combine(FileSystemLayout.MusicVideoCreditsTemplatesFolder, fileWithExtension)));
} }
else
{
_logger.LogWarning(
"Music video credits template {Template} does not exist; falling back to built-in template",
fileWithExtension);
subtitles.AddRange(
await _musicVideoCreditsGenerator.GenerateCreditsSubtitle(musicVideo, channel.FFmpegProfile));
}
break; break;
case ChannelMusicVideoCreditsMode.None: case ChannelMusicVideoCreditsMode.None:
default: default:

3
ErsatzTV.Core/Domain/ChannelMusicVideoCreditsMode.cs

@ -3,6 +3,5 @@
public enum ChannelMusicVideoCreditsMode public enum ChannelMusicVideoCreditsMode
{ {
None = 0, None = 0,
GenerateSubtitles = 1, GenerateSubtitles = 1
TemplateSubtitles = 2
} }

3
ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs

@ -92,8 +92,7 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector
string preferredSubtitleLanguage, string preferredSubtitleLanguage,
ChannelSubtitleMode subtitleMode) ChannelSubtitleMode subtitleMode)
{ {
if (channel.MusicVideoCreditsMode is ChannelMusicVideoCreditsMode.GenerateSubtitles if (channel.MusicVideoCreditsMode is ChannelMusicVideoCreditsMode.GenerateSubtitles &&
or ChannelMusicVideoCreditsMode.TemplateSubtitles &&
subtitles.FirstOrDefault(s => s.SubtitleKind == SubtitleKind.Generated) is { } generatedSubtitle) subtitles.FirstOrDefault(s => s.SubtitleKind == SubtitleKind.Generated) is { } generatedSubtitle)
{ {
_logger.LogDebug("Selecting generated subtitle for channel {Number}", channel.Number); _logger.LogDebug("Selecting generated subtitle for channel {Number}", channel.Number);

4309
ErsatzTV.Infrastructure/Migrations/20221008111001_Fix_ChannelMusicVideoCreditsTemplate.Designer.cs generated

File diff suppressed because it is too large Load Diff

18
ErsatzTV.Infrastructure/Migrations/20221008111001_Fix_ChannelMusicVideoCreditsTemplate.cs

@ -0,0 +1,18 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ErsatzTV.Infrastructure.Migrations
{
public partial class Fix_ChannelMusicVideoCreditsTemplate : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("UPDATE Channel SET MusicVideoCreditsMode = 1 WHERE MusicVideoCreditsMode = 2");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

3
ErsatzTV/Pages/ChannelEditor.razor

@ -76,13 +76,12 @@
<MudSelect Class="mt-3" Label="Music Video Credits Mode" @bind-Value="_model.MusicVideoCreditsMode" For="@(() => _model.MusicVideoCreditsMode)"> <MudSelect Class="mt-3" Label="Music Video Credits Mode" @bind-Value="_model.MusicVideoCreditsMode" For="@(() => _model.MusicVideoCreditsMode)">
<MudSelectItem Value="@(ChannelMusicVideoCreditsMode.None)">None</MudSelectItem> <MudSelectItem Value="@(ChannelMusicVideoCreditsMode.None)">None</MudSelectItem>
<MudSelectItem Value="@(ChannelMusicVideoCreditsMode.GenerateSubtitles)">Generate Subtitles</MudSelectItem> <MudSelectItem Value="@(ChannelMusicVideoCreditsMode.GenerateSubtitles)">Generate Subtitles</MudSelectItem>
<MudSelectItem Value="@(ChannelMusicVideoCreditsMode.TemplateSubtitles)">Template Subtitles</MudSelectItem>
</MudSelect> </MudSelect>
<MudSelect Class="mt-3" <MudSelect Class="mt-3"
Label="Music Video Credits Template" Label="Music Video Credits Template"
@bind-Value="_model.MusicVideoCreditsTemplate" @bind-Value="_model.MusicVideoCreditsTemplate"
For="@(() => _model.MusicVideoCreditsTemplate)" For="@(() => _model.MusicVideoCreditsTemplate)"
Disabled="@(_model.MusicVideoCreditsMode != ChannelMusicVideoCreditsMode.TemplateSubtitles)"> Disabled="@(_model.MusicVideoCreditsMode != ChannelMusicVideoCreditsMode.GenerateSubtitles)">
<MudSelectItem T="string" Value="@((string)null)">(none)</MudSelectItem> <MudSelectItem T="string" Value="@((string)null)">(none)</MudSelectItem>
@foreach (string template in _musicVideoCreditsTemplates) @foreach (string template in _musicVideoCreditsTemplates)
{ {

2
ErsatzTV/ViewModels/ChannelEditViewModel.cs

@ -24,7 +24,7 @@ public class ChannelEditViewModel
public string MusicVideoCreditsTemplate public string MusicVideoCreditsTemplate
{ {
get => MusicVideoCreditsMode == ChannelMusicVideoCreditsMode.TemplateSubtitles get => MusicVideoCreditsMode == ChannelMusicVideoCreditsMode.GenerateSubtitles
? _musicVideoCreditsTemplate ? _musicVideoCreditsTemplate
: null; : null;
set => _musicVideoCreditsTemplate = value; set => _musicVideoCreditsTemplate = value;

Loading…
Cancel
Save