lampac/Tracks/ModInit.cs
lampac-talks f843f04fd4 chore: initial commit 154.3
Signed-off-by: lampac-talks <lampac-talks@users.noreply.github.com>
2026-01-30 16:23:09 +03:00

49 lines
1.3 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Shared;
using Shared.Engine;
using Shared.Models.Module;
using System;
using System.IO;
using Tracks.Engine;
namespace Tracks
{
public class ModInit
{
public static bool IsInitialization { get; private set; }
public static void loaded(InitspaceModel initspace)
{
RegisterShutdown(initspace);
Directory.CreateDirectory("database/tracks");
FFprobe.InitializationAsync().ContinueWith(t =>
{
IsInitialization = t.Result;
TranscodingService.Instance.Configure(AppInit.conf.transcoding);
});
}
static void RegisterShutdown(InitspaceModel initspace)
{
if (initspace?.app?.ApplicationServices != null)
{
var lifetime = initspace.app.ApplicationServices.GetService<IHostApplicationLifetime>();
lifetime?.ApplicationStopping.Register(StopTranscoding);
}
AppDomain.CurrentDomain.ProcessExit += (_, _) => StopTranscoding();
}
static void StopTranscoding()
{
try
{
TranscodingService.Instance.StopAll();
}
catch { }
}
}
}