aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/sync/syncers.py31
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.")