From 22570e2f763f6dfe0ee8d14248e936c0a9e30c7a Mon Sep 17 00:00:00 2001 From: CMDR furrycat Date: Mon, 19 Sep 2016 22:06:16 +0100 Subject: [PATCH] Set new members to unassigned group. --- bot.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/bot.py b/bot.py index bd70c38..ac62be5 100755 --- a/bot.py +++ b/bot.py @@ -112,6 +112,34 @@ def do_fork(message, command, raw): 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) @@ -152,6 +180,8 @@ def process_module(message, command, raw): 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 @@ -169,4 +199,9 @@ def on_message(message): 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) -- 2.7.4