📄 src/Cli/Program.cs
using System.Reflection;
using System.Threading;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Slopper.Domain;
using Slopper.Infrastructure.Database;
using Slopper.Infrastructure.Ffmpeg;

var builder = Host.CreateApplicationBuilder();

builder.Configuration.AddUserSecrets(Assembly.GetExecutingAssembly());

builder.Services.AddJellyfinDatabase().AddFfmpegServices();

using var app = builder.Build();

var subtitleReader = app.Services.GetRequiredService<ISubtitleReader>();

var lines = await subtitleReader.ReadSubtitles(
    new("media", args[0], new Subtitles.Embedded(0)),
    CancellationToken.None
);

var logger = app.Services.GetRequiredService<ILogger<Program>>();
foreach (var line in lines)
{
    logger.LogInformation("{Start} ({Duration}): {Lines}", line.Start, line.Duration, line.Lines);
}