fix: Delete old deleted message logs

(they stay uploaded to discord)
This commit is contained in:
Mira 2025-05-07 18:48:06 +02:00
parent 7698e14c3e
commit 1c3aa23a76
Signed by untrusted user who does not match committer: Xorog
GPG key ID: 983798ED9C3E7C36

View file

@ -334,6 +334,7 @@ public sealed class Bot
} }
}); });
_ = this.CleanupOldPrunedMessages().Add(this);
_ = this.ProcessDeletionRequests().Add(this); _ = this.ProcessDeletionRequests().Add(this);
}).Add(this).IsVital(); }).Add(this).IsVital();
@ -522,6 +523,42 @@ public sealed class Bot
Environment.FailFast("Failed to exit"); Environment.FailFast("Failed to exit");
} }
private async Task CleanupOldPrunedMessages()
{
_ = new Func<Task>(async () =>
{
_ = this.CleanupOldPrunedMessages().Add(this);
}).CreateScheduledTask(DateTime.UtcNow.AddHours(24));
foreach (var guildDirectory in Directory.GetDirectories("WebServer").Select(x => new DirectoryInfo(x)))
{
if (guildDirectory.GetDirectories().Any(x => x.Name.Equals("DeletedMessages", StringComparison.CurrentCultureIgnoreCase)))
{
var deletedMessagesDirectory = guildDirectory.GetDirectories().First(x => x.Name.Equals("DeletedMessages", StringComparison.CurrentCultureIgnoreCase));
foreach (var deletedMessageFile in deletedMessagesDirectory.GetFiles())
{
if (deletedMessageFile.LastWriteTimeUtc.GetTimespanSince() > TimeSpan.FromDays(30))
{
Log.Information("Deleting '{File}'..", deletedMessageFile.FullName);
deletedMessageFile.Delete();
}
}
if (deletedMessagesDirectory.GetFiles().Length == 0)
{
Log.Information("Deleting '{File}'..", deletedMessagesDirectory.FullName);
deletedMessagesDirectory.Delete();
}
}
if (guildDirectory.GetFiles().Length == 0 && guildDirectory.GetDirectories().Length == 0)
{
Log.Information("Deleting '{File}'..", guildDirectory.FullName);
guildDirectory.Delete();
}
}
}
private async Task ProcessDeletionRequests() private async Task ProcessDeletionRequests()
{ {
_ = new Func<Task>(async () => _ = new Func<Task>(async () =>