Skip to content

Commit 716ee70

Browse files
committed
Migrate linePardoned to Set
1 parent add4e9d commit 716ee70

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

Events/MessageEvent.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -823,9 +823,9 @@ Program.cfgjson.GitListDirectory is not null
823823

824824
string reason = "Too many lines in a single message";
825825

826-
if (!Program.db.HashExists("linePardoned", message.Author.Id.ToString()))
826+
if (!Program.db.SetContains("linePardoned", message.Author.Id.ToString()))
827827
{
828-
await Program.db.HashSetAsync("linePardoned", member.Id.ToString(), false);
828+
await Program.db.SetAddAsync("linePardoned", member.Id.ToString());
829829
string output;
830830
if (wasAutoModBlock)
831831
output = $"{Program.cfgjson.Emoji.Information} {message.Author.Mention}, your message contained too many lines.\n" +

Events/ReadyEvent.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,11 @@ public static async Task OnStartup(DiscordClient client)
180180
try
181181
{
182182
await Migrations.JoinwatchMigration.MigrateJoinwatchesToNotesAsync();
183+
await Migrations.LinePardonMigrations.MigrateLinePardeonToSetAsync();
183184
}
184185
catch (Exception ex)
185186
{
186-
client.Logger.LogError(ex, "Failed to migrate joinwatches to notes!");
187+
client.Logger.LogError(ex, "Failed to run migrations!");
187188
}
188189

189190
client.Logger.LogInformation(CliptokEventID, "Startup event complete, logged in as {user}", $"{DiscordHelpers.UniqueUsername(client.CurrentUser)}");

Migrations/LinePardonMigrations.cs

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
namespace Cliptok.Migrations
2+
{
3+
class LinePardonMigrations
4+
{
5+
public static async Task MigrateLinePardeonToSetAsync()
6+
{
7+
if (!Program.db.KeyExists("linePardoned") || Program.db.KeyType("linePardoned") == RedisType.Set)
8+
return;
9+
10+
// archive old data
11+
await Program.db.KeyRenameAsync("linePardoned", "linePardonedOld");
12+
13+
// migrate to set
14+
var linePardonList = await Program.db.HashGetAllAsync("linePardonedOld");
15+
foreach (var line in linePardonList)
16+
{
17+
await Program.db.SetAddAsync("linePardoned", line.Name);
18+
}
19+
20+
Program.discord.Logger.LogInformation(Program.CliptokEventID, "Successfully migrated {count} line pardons to set.", linePardonList.Length);
21+
}
22+
}
23+
}

0 commit comments

Comments
 (0)