44 lines
1.3 KiB
Python
Executable File
44 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from coldcall import ColdCall
|
|
import re
|
|
import discord
|
|
|
|
## create the coldcall object
|
|
cc = ColdCall()
|
|
|
|
class ColdCallBot (discord.Client):
|
|
async def on_ready(self):
|
|
print(f'Logged on as {self.user}! Ready for class!')
|
|
|
|
async def on_message(self, message):
|
|
if message.author == self.user:
|
|
return
|
|
|
|
if message.content.startswith('$next'):
|
|
classroom = discord.utils.get(message.guild.voice_channels, name='Classroom Voice')
|
|
|
|
present_students = []
|
|
for member in classroom.members:
|
|
if 'Students' in [r.name for r in member.roles]:
|
|
present_students.append(re.sub(r'^(.*)\#.*$', r'\1', member.name))
|
|
|
|
# print who is online
|
|
print(f'currently online: {",".join(present_students)}')
|
|
|
|
if len(present_students) < 1:
|
|
msg_text = "I don't see any students currently in the Classroom Voice channel!"
|
|
else:
|
|
msg_text = cc.coldcall(present_students)
|
|
|
|
await message.channel.send(msg_text)
|
|
|
|
# this is necessary to get information about who is online
|
|
intents = discord.Intents.default()
|
|
intents.members = True
|
|
intents.presences = True
|
|
|
|
ccb = ColdCallBot(intents=intents)
|
|
ccb.run('CHANGEME')
|
|
|