#!/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)