aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2020-09-02 10:33:16 +0100
committerGravatar Joe Banks <[email protected]>2020-09-02 10:33:16 +0100
commitd9b0817a9166083d3bb2a16d5acdf16f5dc45c99 (patch)
tree10899a710a02ae61eb40dbd41ba79f84d3420a2c
parentAdd support for measuring role gate effectiveness (diff)
Store public flags
-rw-r--r--metricity/bot.py13
-rw-r--r--metricity/models.py4
2 files changed, 12 insertions, 5 deletions
diff --git a/metricity/bot.py b/metricity/bot.py
index b8f4b0e..4ca8082 100644
--- a/metricity/bot.py
+++ b/metricity/bot.py
@@ -144,6 +144,7 @@ async def on_guild_available(guild: Guild) -> None:
"bot": user.bot,
"in_guild": True,
"is_verified": BotConfig.role_gate_id in [role.id for role in user.roles],
+ "public_flags": dict(user.public_flags)
})
log.info(f"Performing bulk upsert of {len(users)} rows")
@@ -176,7 +177,8 @@ async def on_member_join(member: Member) -> None:
joined_at=member.joined_at,
created_at=member.created_at,
is_staff=BotConfig.staff_role_id in [role.id for role in member.roles],
- is_verified=False
+ is_verified=False,
+ public_flags=member.public_flags
).apply()
else:
try:
@@ -187,7 +189,8 @@ async def on_member_join(member: Member) -> None:
joined_at=member.joined_at,
created_at=member.created_at,
is_staff=BotConfig.staff_role_id in [role.id for role in member.roles],
- is_verified=False
+ is_verified=False,
+ public_flags=member.public_flags
)
except UniqueViolationError:
pass
@@ -236,7 +239,8 @@ async def on_member_update(_before: Member, member: Member) -> None:
joined_at=member.joined_at,
created_at=member.created_at,
is_staff=BotConfig.staff_role_id in roles,
- is_verified=BotConfig.role_gate_id in roles
+ is_verified=BotConfig.role_gate_id in roles,
+ public_flags=member.public_flags
).apply()
else:
try:
@@ -247,7 +251,8 @@ async def on_member_update(_before: Member, member: Member) -> None:
joined_at=member.joined_at,
created_at=member.created_at,
is_staff=BotConfig.staff_role_id in roles,
- is_verified=BotConfig.role_gate_id in roles
+ is_verified=BotConfig.role_gate_id in roles,
+ public_flags=member.public_flags
)
except UniqueViolationError:
pass
diff --git a/metricity/models.py b/metricity/models.py
index 7e9bda7..cf6b9c9 100644
--- a/metricity/models.py
+++ b/metricity/models.py
@@ -47,6 +47,7 @@ class User(db.Model):
bot = db.Column(db.Boolean, default=False)
in_guild = db.Column(db.Boolean, default=True)
is_verified = db.Column(db.Boolean, default=False)
+ public_flags = db.Column(db.JSON, default={})
@classmethod
def bulk_upsert(cls: type, users: List[Dict[str, Any]]) -> Any:
@@ -60,7 +61,8 @@ class User(db.Model):
"is_staff",
"bot",
"in_guild",
- "is_verified"
+ "is_verified",
+ "public_flags",
]
return qs.on_conflict_do_update(