feat: export guilds from old bot and import into new one

This commit is contained in:
sam 2024-10-24 23:35:44 +02:00
parent 301744dd4e
commit 9302ba200f
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
10 changed files with 1326 additions and 0 deletions

View file

@ -0,0 +1,56 @@
// See https://aka.ms/new-console-template for more information
using System.Text.Json;
using Catalogger.Backend;
using Catalogger.Backend.Database;
using Catalogger.Backend.Extensions;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NodaTime;
using NodaTime.Serialization.SystemTextJson;
using NodaTime.Text;
using Serilog;
using Serilog.Events;
using Serilog.Sinks.SystemConsole.Themes;
namespace Catalogger.GoImporter;
internal class Program
{
public static JsonSerializerOptions JsonOptions =
new JsonSerializerOptions().ConfigureForNodaTime(
new NodaJsonSettings
{
InstantConverter = new NodaPatternConverter<Instant>(InstantPattern.ExtendedIso),
}
);
public static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.WriteTo.Console(theme: AnsiConsoleTheme.Sixteen)
.CreateLogger();
var config = new ConfigurationBuilder().AddConfiguration().Build().Get<Config>();
if (config == null)
{
Log.Fatal("No configuration object was created");
return;
}
var db = new DatabaseContext(config, null);
await db.Database.MigrateAsync();
var type = args[0].ToLowerInvariant();
var file = args[1];
if (type == "guilds")
{
Log.Information("Importing guilds from {File}", file);
await GuildImport.DoImportAsync(db, file);
}
}
}