(Sysadmin): Add guild and user blacklist.

v2 -> v3 data migration for the blacklist tables.
Added blacklists and blacklist commands
Added bot admin level to help groups.
This commit is contained in:
2021-09-28 20:54:22 +03:00
parent b792b081b8
commit 9ae0de034f
14 changed files with 414 additions and 12 deletions

View File

@@ -47,9 +47,14 @@ def _scan(guild):
members = itertools.chain(*channel_members)
# TODO filter out blacklisted users
blacklist = client.objects['blacklisted_users']
guild_blacklist = client.objects['ignored_members'][guild.id]
for member in members:
if member.bot:
continue
if member.id in blacklist or member.id in guild_blacklist:
continue
lion = Lion.fetch(guild.id, member.id)
# Add time

View File

@@ -42,11 +42,14 @@ async def cmd_top(ctx):
Lion.sync()
# Fetch the leaderboard
exclude = [m.id for m in ctx.guild_settings.unranked_roles.members]
exclude = set(m.id for m in ctx.guild_settings.unranked_roles.members)
exclude.update(ctx.client.objects['blacklisted_users'])
exclude.update(ctx.client.objects['ignored_members'][ctx.guild.id])
if exclude:
user_data = tables.lions.select_where(
guildid=ctx.guild.id,
userid=data.NOT(exclude),
userid=data.NOT(list(exclude)),
select_columns=('userid', 'tracked_time'),
_extra="AND tracked_time > 0 ORDER BY tracked_time DESC " + ("LIMIT 100" if top100 else "")
)