about summary refs log tree commit diff
path: root/OsuFederatedBeatmapApi/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OsuFederatedBeatmapApi/Program.cs')
-rw-r--r--OsuFederatedBeatmapApi/Program.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/OsuFederatedBeatmapApi/Program.cs b/OsuFederatedBeatmapApi/Program.cs
new file mode 100644
index 0000000..27175f1
--- /dev/null
+++ b/OsuFederatedBeatmapApi/Program.cs
@@ -0,0 +1,41 @@
+using LibMatrix.Services;
+using LibMatrix.Utilities.Bot;
+using OsuFederatedBeatmapApi.Services;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+builder.Services.AddScoped<TieredStorageService>(x =>
+	new TieredStorageService(
+		cacheStorageProvider: new FileStorageProvider("bot_data/cache/"),
+		dataStorageProvider: new FileStorageProvider("bot_data/data/")
+	)
+);
+
+builder.Services.AddRoryLibMatrixServices();
+builder.Services.AddBot(withCommands: true);
+
+builder.Services.AddSingleton<FederatedBeatmapApiBotAccountDataService>();
+builder.Services.AddHostedService<FederatedBeatmapApiBot>();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment()) {
+	app.UseSwagger();
+	app.UseSwaggerUI();
+}
+
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();