send tts messages for final countdown

This commit is contained in:
xenofem 2020-06-26 18:51:22 -04:00
parent 4cbe72c8e5
commit 0c84b3cebd

View file

@ -27,6 +27,13 @@ async def delete_if_possible(channels):
except: except:
pass pass
async def countdown(channel):
await asyncio.sleep(20)
await channel.send('10', tts=True)
await asyncio.sleep(5)
await channel.send('5', tts=True)
await asyncio.sleep(5)
with open('config.json') as f: with open('config.json') as f:
config = json.load(f) config = json.load(f)
@ -108,13 +115,13 @@ async def on_message(message):
return return
continue continue
await message.channel.send("{} Welcome to pollination! You'll be randomly paired up, moved into separate voice channels, spend some time chatting, and then move to a new channel and meet somebody else. Each round will last 5 minutes, and there'll be {} rounds total. I'll announce when your time is nearly up so you can wrap up your conversations, and I'll automatically move you to a different voice channel at the start of each new round. **Feel free to leave at any time if you need to. You won't get moved into new voice channels if you disconnect from voice.** If you find yourself alone in a channel, the person you were paired with for that round may have left; just relax and take a break for 5 minutes. Have fun!".format(mention_all, len(schedule))) await message.channel.send("{} Welcome to pollination! You'll be randomly paired up, moved into separate voice channels, spend some time chatting, and then move to a new channel and meet somebody else. Each round will last 5 minutes, and there'll be {} rounds total. I'll announce when your time is nearly up so you can wrap up your conversations, and I'll automatically move you to a different voice channel at the start of each new round. If you keep this text channel open, you'll get audible countdowns via text-to-speech at the end of each round. **Feel free to leave at any time if you need to. You won't get moved into new voice channels if you disconnect from voice.** If you find yourself alone in a channel, the person you were paired with for that round may have left; just relax and take a break for 5 minutes. Have fun!".format(mention_all, len(schedule)))
for matching in schedule: for matching in schedule:
announcement = 'Next round starting in 30 seconds:\n' announcement = 'Next round starting in 30 seconds:\n'
announcement += '\n'.join('{0} and {1} in {2}'.format(a.mention, b.mention, c.name) for ((a, b), c) in zip(matching, pollination_channels)) announcement += '\n'.join('{0} and {1} in {2}'.format(a.mention, b.mention, c.name) for ((a, b), c) in zip(matching, pollination_channels))
await message.channel.send(announcement) await message.channel.send(announcement)
await asyncio.sleep(30) await countdown(message.channel)
for ((a, b), c) in zip(matching, pollination_channels): for ((a, b), c) in zip(matching, pollination_channels):
try: try:
await a.move_to(c) await a.move_to(c)
@ -131,7 +138,7 @@ async def on_message(message):
await asyncio.sleep(30) await asyncio.sleep(30)
await message.channel.send('Returning to main channel in 30 seconds {}'.format(mention_all)) await message.channel.send('Returning to main channel in 30 seconds {}'.format(mention_all))
await asyncio.sleep(30) await countdown(message.channel)
for u in participants: for u in participants:
try: try:
await u.move_to(main_voice_channel) await u.move_to(main_voice_channel)