Skip to content

Commit e8899bb

Browse files
authored
Merge pull request #41 from brandons209/update-3.5
fix some bugs and added using multiple guild emojis for chatbot
2 parents f276ffd + e85fa10 commit e8899bb

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

activitylog/activitylog.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,11 @@ async def get_audit_entry(
214214
cached_entries = self.audit_logs[guild.id]
215215
# it seems that cached entries wont contain the updated audit event right when it happens, it seems to fire after the event handler that is in question, may help with high traffic bots though
216216
for entry in cached_entries:
217-
if all(cond(entry) for cond in conditions):
218-
return entry
217+
if entry is not None:
218+
if all(cond(entry) for cond in conditions):
219+
return entry
219220

220-
# fallback to look at audit log for the guild
221+
# fallback to look at audit log for qthe guild
221222
# print("firing get_audit_entry")
222223
# print(len(conditions))
223224
if self.cache["check_audit"]:
@@ -3210,6 +3211,12 @@ async def on_thread_create(self, thread: discord.Thread):
32103211
if not self.should_log(thread.guild):
32113212
return
32123213

3214+
# try to join the thread so we can log
3215+
try:
3216+
await thread.join()
3217+
except:
3218+
pass
3219+
32133220
audit_entry = await self.get_audit_entry(
32143221
thread.guild,
32153222
lambda e: e.action == discord.AuditLogAction.thread_create,

chatbotassistant/chatbot.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,11 @@ def format_response(self, content: str, guild: discord.Guild):
502502
A string where emoji names and user display names (with or without
503503
leading '@') become proper Discord mentions.
504504
"""
505-
emoji_map: Dict[str, str] = {emoji.name.lower(): str(emoji) for emoji in guild.emojis}
505+
# allow pulling for multiple guilds
506+
emoji_map: Dict[str, str] = {}
507+
for e_guild in self.bot.guilds:
508+
for emoji in e_guild.emojis:
509+
emoji_map[emoji.name.lower()] = str(emoji)
506510
# user_map: Dict[str, str] = {member.display_name.lower(): member.mention for member in guild.members}
507511

508512
# remove possible system bot name prefix n the response:
@@ -2342,10 +2346,6 @@ async def on_message(self, message: discord.Message):
23422346
)
23432347
)
23442348

2345-
# TODO: for testing, remove
2346-
if channel.id not in [1367715420081229855, 532724833981562890, 703281764923211846]:
2347-
return
2348-
23492349
lock = self.channel_lock[channel.id]
23502350
# if the lock is already taken, end after updating history
23512351
if lock.locked():
@@ -2397,7 +2397,7 @@ async def on_message(self, message: discord.Message):
23972397
except:
23982398
pass
23992399
else:
2400-
msg = await channel.send(response)
2400+
msg = await channel.send(response, reference=message, mention_author=False)
24012401

24022402
@commands.Cog.listener()
24032403
async def on_reaction_add(self, reaction: discord.Reaction, member: Union[discord.Member, discord.User]):

mayhemmaker/mayhemmaker.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,22 +210,22 @@ async def check_cooldown(
210210
target_level: int = await self.level_cog.get_level(target)
211211
# check level cooldowns, default to global cooldowns otherwise
212212
lvl_usage_cooldowns = (await self.config.guild(guild).level_integration_usage_cooldowns())[action]
213-
lvls = sorted(list(lvl_usage_cooldowns.keys()))
213+
lvls = sorted([int(k) for k in lvl_usage_cooldowns.keys()])
214214
member_usage_cooldown = 0
215215
if lvl_usage_cooldowns:
216-
member_usage_cooldown = bisect.bisect_left(lvls, str(member_level))
216+
member_usage_cooldown = bisect.bisect_left(lvls, member_level)
217217
if member_usage_cooldown != len(
218218
lvl_usage_cooldowns
219219
): # if false then member has a higher level then configured
220-
member_usage_cooldown = lvl_usage_cooldowns[lvls[member_usage_cooldown]]
220+
member_usage_cooldown = lvl_usage_cooldowns[str(lvls[member_usage_cooldown])]
221221

222222
lvl_applied_cooldowns = (await self.config.guild(guild).level_integration_applied_cooldowns())[action]
223-
lvls = sorted(list(lvl_applied_cooldowns.keys()))
223+
lvls = sorted([int(k) for k in lvl_applied_cooldowns.keys()])
224224
target_applied_cooldown = 0
225225
if lvl_applied_cooldowns:
226-
target_applied_cooldown = bisect.bisect_left(lvls, str(target_level))
226+
target_applied_cooldown = bisect.bisect_left(lvls, target_level)
227227
if target_applied_cooldown != len(lvl_applied_cooldowns):
228-
target_applied_cooldown = lvl_applied_cooldowns[lvls[target_applied_cooldown]]
228+
target_applied_cooldown = lvl_applied_cooldowns[str(lvls[target_applied_cooldown])]
229229

230230
if member_usage_cooldown:
231231
usage_cooldown = member_usage_cooldown
@@ -292,12 +292,12 @@ async def apply_mayhem(
292292
max_duration = await self.config.guild(member.guild).max_duration()
293293
if self.level_cog is not None:
294294
lvl_maxduration = await self.config.guild(member.guild).level_integration_max_duration()
295-
lvls = sorted(list(lvl_maxduration.keys()))
295+
lvls = sorted([int(k) for k in lvl_maxduration.keys()])
296296
member_level = await self.level_cog.get_level(ctx.author)
297297
if lvl_maxduration:
298-
idx = bisect.bisect_left(lvls, str(member_level))
298+
idx = bisect.bisect_left(lvls, member_level)
299299
if idx != len(lvl_maxduration):
300-
max_duration = lvl_maxduration[lvls[idx]]
300+
max_duration = lvl_maxduration[str(lvls[idx])]
301301

302302
if action != "shut":
303303
time = parse_timedelta(duration)

0 commit comments

Comments
 (0)