Fix voice announcements.
authorCMDR furrycat <elite@furrycat.net>
Wed, 11 Nov 2020 10:45:14 +0000 (11:45 +0100)
committerCMDR furrycat <elite@furrycat.net>
Wed, 11 Nov 2020 10:45:14 +0000 (11:45 +0100)
bot.py
plugins/announcements/__init__.py

diff --git a/bot.py b/bot.py
index a50903b..6577c89 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -805,7 +805,7 @@ async def maybe_play_sound(channel, filename, *, name = None, probability = 0.05
     await set_activity(None)
     return False
 
-async def play_sound(channel, filename, *, name = None, join = True, wake = None):
+async def play_sound(channel, filename, *, name = None, probability = 1.0, join = True, wake = None):
   result = await maybe_play_sound(channel, filename, name = name, probability = 1.0, join = join)
   return result
 
index 0ffb306..798fd1c 100644 (file)
@@ -14,11 +14,7 @@ import cat
 class Announcement(object):
   def __init__(self, row):
     for k, v in dict(row).items():
-      canon = v
-      if k.endswith('_id'):
-        if k != 'channel_id' or v != 'private':
-          canon = bot.snowflake(v)
-      setattr(self, k, canon)
+      setattr(self, k, bot.snowflake(v) if k.endswith('_id') else v)
     if not hasattr(self, 'message_limit'):
       self.message_limit = None
     self.is_private = hasattr(self, 'channel_id') and self.channel_id == 'private'
@@ -907,7 +903,8 @@ class Announcements(DBConnection):
         if not announce:
           return
         if announcement.voice_id:
-          log.info('Playing announcement {} {} in {}'.format(announcement.id, filename, channel))
-          await bot.play_sound(client.get_channel(str(announcement.voice_id)), filename)
+          voice = bot.get_channel(announcement.voice_id)
+          log.info('Playing announcement {} {} in {}'.format(announcement.id, filename, voice.name))
+          await bot.play_sound(voice, filename)
     except:
       log.exception("announce")