Skip to content

Commit 6cc9b66

Browse files
Combine tasks for auto-warn messages & compromised account ban messages
1 parent 42404b0 commit 6cc9b66

File tree

3 files changed

+29
-41
lines changed

3 files changed

+29
-41
lines changed

Commands/Debug.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,14 @@ public async Task Refresh(CommandContext ctx)
131131
var msg = await ctx.RespondAsync("Checking for pending scheduled tasks...");
132132
bool bans = await Tasks.PunishmentTasks.CheckBansAsync();
133133
bool mutes = await Tasks.PunishmentTasks.CheckMutesAsync();
134-
bool warns = await Tasks.PunishmentTasks.CheckAutomaticWarningsAsync();
134+
bool punishmentMessages = await Tasks.PunishmentTasks.CleanUpPunishmentMessagesAsync();
135135
bool reminders = await Tasks.ReminderTasks.CheckRemindersAsync();
136136
bool raidmode = await Tasks.RaidmodeTasks.CheckRaidmodeAsync(ctx.Guild.Id);
137137
bool unlocks = await Tasks.LockdownTasks.CheckUnlocksAsync();
138138
bool channelUpdateEvents = await Tasks.EventTasks.HandlePendingChannelUpdateEventsAsync();
139139
bool channelDeleteEvents = await Tasks.EventTasks.HandlePendingChannelDeleteEventsAsync();
140140

141-
await msg.ModifyAsync($"Unban check result: `{bans}`\nUnmute check result: `{mutes}`\nAutomatic warning message check result: `{warns}`\nReminders check result: `{reminders}`\nRaidmode check result: `{raidmode}`\nUnlocks check result: `{unlocks}`\nPending Channel Update events check result: `{channelUpdateEvents}`\nPending Channel Delete events check result: `{channelDeleteEvents}`");
141+
await msg.ModifyAsync($"Unban check result: `{bans}`\nUnmute check result: `{mutes}`\nPunishment message cleanup check result: `{punishmentMessages}`\nReminders check result: `{reminders}`\nRaidmode check result: `{raidmode}`\nUnlocks check result: `{unlocks}`\nPending Channel Update events check result: `{channelUpdateEvents}`\nPending Channel Delete events check result: `{channelDeleteEvents}`");
142142
}
143143

144144
[Command("sh")]

Program.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,7 @@ static async Task Main(string[] _)
248248
[
249249
Tasks.PunishmentTasks.CheckMutesAsync(),
250250
Tasks.PunishmentTasks.CheckBansAsync(),
251-
Tasks.PunishmentTasks.CheckAutomaticWarningsAsync(),
252-
Tasks.PunishmentTasks.CheckCompromisedAccountBansAsync(),
251+
Tasks.PunishmentTasks.CleanUpPunishmentMessagesAsync(),
253252
Tasks.ReminderTasks.CheckRemindersAsync(),
254253
Tasks.RaidmodeTasks.CheckRaidmodeAsync(cfgjson.ServerID),
255254
Tasks.LockdownTasks.CheckUnlocksAsync(),

Tasks/PunishmentTasks.cs

+26-37
Original file line numberDiff line numberDiff line change
@@ -58,26 +58,26 @@ public static async Task<bool> CheckMutesAsync()
5858
}
5959
}
6060

61-
public static async Task<bool> CheckAutomaticWarningsAsync()
61+
// Cleans up public messages for automatic warnings & bans for compromised accounts
62+
public static async Task<bool> CleanUpPunishmentMessagesAsync()
6263
{
63-
if (Program.cfgjson.AutoWarnMsgAutoDeleteDays == 0)
64+
if (Program.cfgjson.AutoWarnMsgAutoDeleteDays == 0 && Program.cfgjson.CompromisedAccountBanMsgAutoDeleteDays == 0)
6465
return false;
65-
66-
Dictionary<string, UserWarning> warnList = Program.db.HashGetAll("automaticWarnings").ToDictionary(
67-
x => x.Name.ToString(),
68-
x => JsonConvert.DeserializeObject<UserWarning>(x.Value)
69-
);
70-
71-
if (warnList is null | warnList.Keys.Count == 0)
72-
return false;
73-
else
66+
67+
// The success value will be changed later if any of the message deletes are successful.
68+
bool success = false;
69+
70+
if (Program.cfgjson.AutoWarnMsgAutoDeleteDays > 0)
7471
{
75-
// The success value will be changed later if any of the message deletes are successful.
76-
bool success = false;
72+
Dictionary<string, UserWarning> warnList = Program.db.HashGetAll("automaticWarnings").ToDictionary(
73+
x => x.Name.ToString(),
74+
x => JsonConvert.DeserializeObject<UserWarning>(x.Value)
75+
);
76+
7777
foreach (KeyValuePair<string, UserWarning> entry in warnList)
7878
{
7979
UserWarning warn = entry.Value;
80-
if (DateTime.Now > warn.WarnTimestamp.AddDays(Program.cfgjson.AutoWarnMsgAutoDeleteDays))
80+
if (DateTime.Now > warn.WarnTimestamp.AddSeconds(Program.cfgjson.AutoWarnMsgAutoDeleteDays))
8181
{
8282
try
8383
{
@@ -94,32 +94,20 @@ public static async Task<bool> CheckAutomaticWarningsAsync()
9494
}
9595
}
9696
}
97-
Program.discord.Logger.LogDebug(Program.CliptokEventID, "Checked automatic warnings at {time} with result: {result}", DateTime.Now, success);
98-
return success;
9997
}
100-
}
101-
102-
public static async Task<bool> CheckCompromisedAccountBansAsync()
103-
{
104-
if (Program.cfgjson.CompromisedAccountBanMsgAutoDeleteDays == 0)
105-
return false;
106-
107-
Dictionary<string, MemberPunishment> banList = Program.db.HashGetAll("compromisedAccountBans").ToDictionary(
108-
x => x.Name.ToString(),
109-
x => JsonConvert.DeserializeObject<MemberPunishment>(x.Value)
110-
);
111-
112-
if (banList.Keys.Count == 0)
113-
return false;
114-
else
98+
99+
if (Program.cfgjson.CompromisedAccountBanMsgAutoDeleteDays > 0)
115100
{
116-
// The success value will be changed later if any of the message deletes are successful.
117-
bool success = false;
101+
Dictionary<string, MemberPunishment> banList = Program.db.HashGetAll("compromisedAccountBans").ToDictionary(
102+
x => x.Name.ToString(),
103+
x => JsonConvert.DeserializeObject<MemberPunishment>(x.Value)
104+
);
105+
118106
foreach (KeyValuePair<string, MemberPunishment> entry in banList)
119107
{
120108
MemberPunishment ban = entry.Value;
121-
122-
if (DateTime.Now > ban.ActionTime.Value.AddDays(Program.cfgjson.CompromisedAccountBanMsgAutoDeleteDays))
109+
110+
if (DateTime.Now > ban.ActionTime.Value.AddSeconds(Program.cfgjson.CompromisedAccountBanMsgAutoDeleteDays))
123111
{
124112
try
125113
{
@@ -136,9 +124,10 @@ public static async Task<bool> CheckCompromisedAccountBansAsync()
136124
}
137125
}
138126
}
139-
Program.discord.Logger.LogDebug(Program.CliptokEventID, "Checked compromised account bans at {time} with result: {result}", DateTime.Now, success);
140-
return success;
141127
}
128+
129+
Program.discord.Logger.LogDebug(Program.CliptokEventID, "Checked for auto-warn and compromised account ban messages at {time} with result: {result}", DateTime.Now, success);
130+
return success;
142131
}
143132
}
144133

0 commit comments

Comments
 (0)