overload security
This commit is contained in:
@@ -69,25 +69,30 @@ async def compute(client: discord.client, message: discord.Message, *args: str):
|
|||||||
async with message.channel.typing():
|
async with message.channel.typing():
|
||||||
progress = await message.channel.send("```Starting analysis...```")
|
progress = await message.channel.send("```Starting analysis...```")
|
||||||
total_msg, total_chan = await logs.load(progress, channels)
|
total_msg, total_chan = await logs.load(progress, channels)
|
||||||
msg_count = 0
|
if total_msg == -1:
|
||||||
chan_count = 0
|
await message.channel.send(
|
||||||
for id in logs.channels:
|
"f{message.author} An analysis is already running on this server, please be patient."
|
||||||
count = analyse_channel(
|
)
|
||||||
logs.channels[id], emotes, raw_members, all_emojis="all" in args
|
else:
|
||||||
|
msg_count = 0
|
||||||
|
chan_count = 0
|
||||||
|
for id in logs.channels:
|
||||||
|
count = analyse_channel(
|
||||||
|
logs.channels[id], emotes, raw_members, all_emojis="all" in args
|
||||||
|
)
|
||||||
|
msg_count += count
|
||||||
|
chan_count += 1 if count > 0 else 0
|
||||||
|
await progress.edit(content=f"```Computing results...```")
|
||||||
|
# Display results
|
||||||
|
await tell_results(
|
||||||
|
get_intro(emotes, full, channels, members, msg_count, chan_count),
|
||||||
|
emotes,
|
||||||
|
message.channel,
|
||||||
|
total_msg,
|
||||||
|
top=top,
|
||||||
|
allow_unused=full and len(members) == 0,
|
||||||
|
show_life=False,
|
||||||
)
|
)
|
||||||
msg_count += count
|
|
||||||
chan_count += 1 if count > 0 else 0
|
|
||||||
await progress.edit(content=f"```Computing results...```")
|
|
||||||
# Display results
|
|
||||||
await tell_results(
|
|
||||||
get_intro(emotes, full, channels, members, msg_count, chan_count),
|
|
||||||
emotes,
|
|
||||||
message.channel,
|
|
||||||
total_msg,
|
|
||||||
top=top,
|
|
||||||
allow_unused=full and len(members) == 0,
|
|
||||||
show_life=False,
|
|
||||||
)
|
|
||||||
# Delete custom progress message
|
# Delete custom progress message
|
||||||
await progress.delete()
|
await progress.delete()
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -15,6 +15,8 @@ if not os.path.exists(LOG_DIR):
|
|||||||
CHUNK_SIZE = 1000
|
CHUNK_SIZE = 1000
|
||||||
FORMAT = 2
|
FORMAT = 2
|
||||||
|
|
||||||
|
current_analysis = []
|
||||||
|
|
||||||
|
|
||||||
class FakeMessage:
|
class FakeMessage:
|
||||||
def __init__(self, id: int):
|
def __init__(self, id: int):
|
||||||
@@ -151,7 +153,10 @@ class GuildLogs:
|
|||||||
|
|
||||||
async def load(
|
async def load(
|
||||||
self, progress: discord.Message, target_channels: List[discord.TextChannel] = []
|
self, progress: discord.Message, target_channels: List[discord.TextChannel] = []
|
||||||
):
|
) -> Tuple[int, int]:
|
||||||
|
if self.log_file in current_analysis:
|
||||||
|
return -1, -1
|
||||||
|
current_analysis += [self.log_file]
|
||||||
await progress.edit(
|
await progress.edit(
|
||||||
content=f"```Reading history...\n(this might take a while)```"
|
content=f"```Reading history...\n(this might take a while)```"
|
||||||
)
|
)
|
||||||
@@ -220,4 +225,5 @@ class GuildLogs:
|
|||||||
await progress.edit(
|
await progress.edit(
|
||||||
content=f"```Analysing...\n{total_msg} messages in {total_chan} channels```"
|
content=f"```Analysing...\n{total_msg} messages in {total_chan} channels```"
|
||||||
)
|
)
|
||||||
|
current_analysis.remove(self.log_file)
|
||||||
return total_msg, total_chan
|
return total_msg, total_chan
|
||||||
|
|||||||
Reference in New Issue
Block a user