49 lines
1.6 KiB
Python
Executable File
49 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from coldcall import ColdCall
|
|
import re
|
|
import discord
|
|
import config
|
|
|
|
## 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, voice_channel = 'Class Sessions'):
|
|
if message.author == self.user:
|
|
return
|
|
|
|
if message.content.startswith('$next'):
|
|
if message.channel.category:
|
|
if cc.course != message.channel.category:
|
|
cc.update_course(message.channel.category)
|
|
classroom = [x for x in message.guild.voice_channels if x.name == voice_channel and x.category_id == message.channel.category_id][0]
|
|
|
|
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:
|
|
if cc is None:
|
|
print('hi')
|
|
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(config.key)
|