p.expect(pexpect.EOF)
yield from say_expect(message, p.before)
+@asyncio.coroutine
+def set_role(member, role_name = 'Unassigned', minimum = 1):
+ if int(member.id) in admins:
+ return
+
+ role = None
+ for server_role in member.server.roles:
+ if server_role.name != role_name:
+ continue
+ role = server_role
+ break
+ if role is None:
+ log.warning("Can't find {} role to assign to {}".format(role_name, member.name))
+ return
+
+ if minimum is not None and len(member.roles) > minimum:
+ return
+
+ log.info('Adding {} role to {}'.format(role.name, member.name))
+ try:
+ yield from client.add_roles(member, role)
+ except discord.errors.Forbidden:
+ log.warning('Forbidden to add {} role to {}'.format(role.name, member.name))
+
+@asyncio.coroutine
+def set_unassigned(member):
+ yield from set_role(member, 'Unassigned')
+
p = pexpect.spawnu('./edi.py')
wait_for_prompt(p)
def on_ready():
print('Logged in as {}#{}'.format(client.user.name, client.user.id))
print('Admins are: {}'.format(admins))
+ for member in client.get_all_members():
+ yield from set_unassigned(member)
@client.event
@asyncio.coroutine
command = m.group(1)
yield from process_module(message, command, raw)
+@client.event
+@asyncio.coroutine
+def on_member_join(member):
+ yield from set_unassigned(member)
+
client.run(token)