async def guild_check(self, guild: Guild): settings = await get_guild_settings(guild) if settings.sync_twitch_followers: streamername: str = settings.twitch_account_name followerrole: Optional[Role] = utils.get(guild.roles, name=settings.follower_role_name) if followerrole is None: return for member in guild.members: # The following would work if discord allowed bots to check linked accounts. # # profile = await member.profile() # for acc in profile.connected_accounts: # if acc["type"] == "twitch": # following = await self.bot.loop.run_in_executor(executor, is_following, streamername, acc["id"]) # # if following and followerrole not in member.roles: # await member.add_roles(followerrole) # elif not following and followerrole in member.roles: # await member.remove_roles(followerrole) query = UserData.filter(user_id=str(member.id)) if await query.count() < 1: continue else: following = await self.bot.loop.run_in_executor( executor, is_following, streamername, (await query.first()).twitch_account_id ) if following and followerrole not in member.roles: await member.add_roles(followerrole) elif not following and followerrole in member.roles: await member.remove_roles(followerrole)