From: CMDR furrycat Date: Fri, 26 Mar 2021 11:09:19 +0000 (+0100) Subject: Log migration in real time. X-Git-Url: http://git.furryclan.net/?a=commitdiff_plain;h=32cf93ed71b4a6c9f567786ebb24a30e1b80ee69;p=furrycat%2Fcatbot.git Log migration in real time. --- diff --git a/plugins/role/__init__.py b/plugins/role/__init__.py index 5bb2a0d..a32e3b2 100644 --- a/plugins/role/__init__.py +++ b/plugins/role/__init__.py @@ -613,32 +613,29 @@ class Role(DBConnection): continue members.append(member) - migrated = [] - errors = 0 - for member in members: - if parsed['add']: - if role not in member.roles: - try: - await member.add_roles(role, reason = 'Migrating {}'.format(existing.name)) - log.info('Added role {} to {} on {}'.format(role.name, member.name, role.guild.name)) - migrated.append(member) - except: - log.error("Couldn't add role {} on {} to {}".format(role.name, role.guild.name, member.name)) - errors += 1 - else: - if role in member.roles: - try: - await member.remove_roles(role, reason = 'Migrating {}'.format(existing.name)) - log.info('Removed role {} from {} on {}'.format(role.name, member.name, role.guild.name)) - migrated.append(member) - except: - log.error("Couldn't add role {} on {} to {}".format(role.name, role.guild.name, member.name)) - errors += 1 - - if migrated: - await bot.say_many(message.channel, [member.nick if member.nick is not None else member.name for member in migrated]) - if errors: - await cat.yelp(message.channel) + async with message.channel.typing() as typing: + errors = 0 + for member in members: + if parsed['add']: + if role not in member.roles: + try: + await member.add_roles(role, reason = 'Migrating {}'.format(existing.name)) + log.info('Added role {} to {} on {}'.format(role.name, member.name, role.guild.name)) + await bot.say_many(message.channel, member.nick is not None else member.name, typing = typing) + except: + log.error("Couldn't add role {} on {} to {}".format(role.name, role.guild.name, member.name)) + errors += 1 + else: + if role in member.roles: + try: + await member.remove_roles(role, reason = 'Migrating {}'.format(existing.name)) + log.info('Removed role {} from {} on {}'.format(role.name, member.name, role.guild.name)) + await bot.say_many(message.channel, member.nick is not None else member.name, typing = typing) + except: + log.error("Couldn't add role {} on {} to {}".format(role.name, role.guild.name, member.name)) + errors += 1 + if errors: + await cat.yelp(message.channel, typing = typing) async def handle_reaction(self, reaction, message, member, channel, server, event_type, emoji): if event_type != 'REACTION_ADD':