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( | 
