List announcement details.
authorCMDR furrycat <elite@furrycat.net>
Wed, 12 Oct 2016 18:03:56 +0000 (19:03 +0100)
committerCMDR furrycat <elite@furrycat.net>
Wed, 12 Oct 2016 18:03:56 +0000 (19:03 +0100)
bot.py

diff --git a/bot.py b/bot.py
index a6bbf9f..9c93a87 100755 (executable)
--- a/bot.py
+++ b/bot.py
@@ -897,7 +897,26 @@ def list_announcements(message):
   for announcement in db.get_all_announcements(client, servers):
     if announcement['channel_id'] == 'private' and announcement['member_id'] != message.author.id:
       continue
-    results.append(announcement['id'])
+    text = announcement['id']
+    if announcement['channel_id'] == 'private':
+      text += ' in private'
+    else:
+      server = client.get_server(announcement['server_id'])
+      member = server.get_member(announcement['member_id'])
+      text += ' by {}'.format(member.name)
+    if announcement['channel_id']:
+      if announcement['channel_id'] != 'private':
+        text += ' in <#{}>'.format(announcement['channel_id'])
+    elif announcement['voice_id']:
+      if announcement['sound']:
+        text += ' sound {}'.format(announcement['sound'])
+      text += ' in <#{}>'.format(announcement['voice_id'])
+    if announcement['message']:
+      short = announcement['message'][:100]
+      if short != announcement['message']:
+        short += '...'
+      text += ': {}'.format(short.replace('\n', ' '))
+    results.append(text)
 
   if len(results):
     yield from say_many(message.channel, results)