about summary refs log tree commit diff
path: root/Jenny/Program.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-06-03 20:19:21 +0200
committerRory& <root@rory.gay>2024-06-03 20:19:21 +0200
commit49eba40d2bc6a98553e57e6f9b8496ff649147a8 (patch)
treebf79603c455ef65b7cfa349cbce285cedd8bf53a /Jenny/Program.cs
downloadJenny-49eba40d2bc6a98553e57e6f9b8496ff649147a8.tar.xz
Initial commit HEAD github/master master
Diffstat (limited to 'Jenny/Program.cs')
-rw-r--r--Jenny/Program.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/Jenny/Program.cs b/Jenny/Program.cs
new file mode 100644

index 0000000..2ee2c9b --- /dev/null +++ b/Jenny/Program.cs
@@ -0,0 +1,33 @@ +using Jenny; +using Jenny.Handlers; +using LibMatrix.Services; +using LibMatrix.Utilities.Bot; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +var builder = Host.CreateDefaultBuilder(args); + +builder.ConfigureHostOptions(host => { + host.ServicesStartConcurrently = true; + host.ServicesStopConcurrently = true; + host.ShutdownTimeout = TimeSpan.FromSeconds(5); +}); + +if (Environment.GetEnvironmentVariable("JENNY_APPSETTINGS_PATH") is string path) + builder.ConfigureAppConfiguration(x => x.AddJsonFile(path)); + +var host = builder.ConfigureServices((_, services) => { + services.AddSingleton<JennyConfiguration>(); + + services.AddRoryLibMatrixServices(new() { + AppName = "Jenny" + }); + services.AddMatrixBot().AddCommandHandler().DiscoverAllCommands() + .WithInviteHandler(InviteHandler.HandleAsync) + .WithCommandResultHandler(CommandResultHandler.HandleAsync); + + services.AddHostedService<JennyBot>(); +}).UseConsoleLifetime().Build(); + +await host.RunAsync(); \ No newline at end of file