diff options
| -rw-r--r-- | bot/cogs/sync/syncers.py | 31 | 
1 files changed, 14 insertions, 17 deletions
diff --git a/bot/cogs/sync/syncers.py b/bot/cogs/sync/syncers.py index 6d200f370..6235a8243 100644 --- a/bot/cogs/sync/syncers.py +++ b/bot/cogs/sync/syncers.py @@ -11,7 +11,7 @@ log = logging.getLogger(__name__)  # These objects are declared as namedtuples because tuples are hashable,  # something that we make use of when diffing site roles against guild roles.  Role = namedtuple('Role', ('id', 'name', 'colour', 'permissions')) -User = namedtuple('User', ('id', 'name', 'discriminator', 'avatar', 'roles', 'in_guild')) +User = namedtuple('User', ('id', 'name', 'discriminator', 'avatar_hash', 'roles', 'in_guild'))  def get_roles_for_update(guild_roles: Set[Role], api_roles: Set[Role]) -> Set[Role]: @@ -51,7 +51,7 @@ async def sync_roles(bot: Bot, guild: Guild):      for role in roles_to_update:          log.info(f"Updating role `{role.name}` on the site.") -        await bot.api_client.post( +        await bot.api_client.put(              'bot/roles',              json={                  'id': role.id, @@ -110,26 +110,23 @@ async def sync_users(bot: Bot, guild: Guild):      guild_users = {          member.id: User(              id=member.id, name=member.name, -            discriminator=member.discriminator, avatar=member.avatar, +            discriminator=member.discriminator, avatar_hash=member.avatar,              roles={role.id for role in member.roles}, in_guild=True          )          for member in guild.members      }      users_to_update = get_users_for_update(guild_users, api_users)      log.info("Updating a total of `%d` users on the site.", len(users_to_update)) -    for chunk in chunk_by(users_to_update, n=250): -        await bot.api_client.post( -            'bot/users', -            json=[ -                { -                    'avatar': user.avatar, -                    'discriminator': user.discriminator, -                    'id': user.id, -                    'in_guild': user.in_guild, -                    'name': user.name, -                    'roles': list(user.roles) -                } -                for user in chunk -            ] +    for user in users_to_update: +        await bot.api_client.put( +            'bot/users/' + str(user.id), +            json={ +                'avatar': user.avatar_hash, +                'discriminator': user.discriminator, +                'id': user.id, +                'in_guild': user.in_guild, +                'name': user.name, +                'roles': list(user.roles) +            }          )      log.info("User update complete.")  |