17
0
coldcallbot/coldcallbot.py

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)