aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar wookie184 <[email protected]>2022-08-20 16:33:42 +0100
committerGravatar wookie184 <[email protected]>2022-08-20 16:33:42 +0100
commit3a2b576f64bb4d435e5c96c7f8721c2120060d14 (patch)
treee7ca672cc064b9a777a80f8656d0bd9709b1dfb3
parentRefactor patreon tier logic, and address some review comments in the process (diff)
Make get_patreon_tier function more readable
-rw-r--r--bot/exts/info/patreon.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/bot/exts/info/patreon.py b/bot/exts/info/patreon.py
index 6fdff4ed4..459f816c3 100644
--- a/bot/exts/info/patreon.py
+++ b/bot/exts/info/patreon.py
@@ -20,7 +20,8 @@ PATREON_INFORMATION = (
"[here](https://pydis.com/patreon)!"
)
-# List of tuples containing tier number and discord role id
+# List of tuples containing tier number and Discord role ID.
+# Ordered from highest tier to lowest.
PATREON_TIERS: list[tuple[int, int]] = [
(3, constants.Roles.patreon_tier_3),
(2, constants.Roles.patreon_tier_2),
@@ -34,8 +35,10 @@ def get_patreon_tier(member: discord.Member) -> int:
A patreon tier of 0 indicates the user is not a patreon.
"""
- # Iterates over PATREON_TIERS, returning the first tier that matches the user, else 0.
- return next((tier for tier, role_id in PATREON_TIERS if has_role_id(member, role_id)), 0)
+ for tier, role_id in PATREON_TIERS:
+ if has_role_id(member, role_id):
+ return tier
+ return 0
class Patreon(commands.Cog):
@@ -79,11 +82,11 @@ class Patreon(commands.Cog):
# Filter out any members where this is not their highest tier.
patrons = [member for member in role.members if get_patreon_tier(member) == tier]
+ patron_names = [f"{patron.mention} ({patron.name}#{patron.discriminator})" for patron in patrons]
- names = [f"{patron.mention} ({patron.name}#{patron.discriminator})" for patron in patrons]
embed = discord.Embed(
title=f"{role.name}",
- description="\n".join(names),
+ description="\n".join(patron_names),
colour=role.colour
)
embed_list.append(embed)