diff options
author | 2020-09-02 10:33:16 +0100 | |
---|---|---|
committer | 2020-09-02 10:33:16 +0100 | |
commit | d9b0817a9166083d3bb2a16d5acdf16f5dc45c99 (patch) | |
tree | 10899a710a02ae61eb40dbd41ba79f84d3420a2c | |
parent | Add support for measuring role gate effectiveness (diff) |
Store public flags
-rw-r--r-- | metricity/bot.py | 13 | ||||
-rw-r--r-- | metricity/models.py | 4 |
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( |