· 6 years ago · Sep 17, 2019, 05:28 AM
1
2class LabClientCheck(commands.Bot):
3 def __init__(self, *args, **kwargs):
4 kwargs["command_prefix"] = "!"
5 self.role_id = None if "role_id" not in kwargs else kwargs["role_id"]
6 self.server_id = None if "server_id" not in kwargs else kwargs["server_id"]
7 super().__init__(*args, **kwargs)
8
9 async def on_ready(self):
10 self.bg_task = self.loop.create_task(self.labtask())
11
12 async def labtask(self):
13 await self.wait_until_ready()
14 global config, api
15 print(self.server_id)
16 guild = self.get_guild(int(self.server_id))
17 print(guild)
18 role = guild.get_role(int(self.role_id))
19 if isinstance(guild, discord.Guild):
20 role = guild.get_role(int(self.role_id))
21 if role is None:
22 print("Could not retrieve role information.")
23 sys.exit(255)
24 print(role)
25 for key in config:
26 user = config[key]
27 id = key
28 status = api.get_user_online(user)
29 print(user, id, status)
30 if isinstance(role, discord.Role):
31 print("Retrieving guild info?")
32 #member = guild.get_member(id)
33 member = discord.utils.get(guild.members, id=int(id))
34 role = discord.utils.get(guild.roles, id=int(self.role_id))
35 print("Check?", member)
36 if status:
37 print("Removed " + user + " from role.")
38 await member.remove_roles([role], "Auto: Detected login from lab.")
39 else:
40 print("Test")
41 res = await member.add_roles(role, "Auto: Detected logout from lab.", atomic=True)
42 print("Added " + user + " to role.")
43 #else:
44 # print(role, member)
45 sys.exit(0)