Fixed client.logs_from() in announcement.
authorCMDR furrycat <elite@furrycat.net>
Tue, 21 Feb 2017 17:35:46 +0000 (17:35 +0000)
committerCMDR furrycat <elite@furrycat.net>
Tue, 21 Feb 2017 17:35:46 +0000 (17:35 +0000)
plugin/announcements/announcements.py

index 3f6c863..3881f4c 100644 (file)
@@ -807,13 +807,16 @@ class Announcements(DBConnection):
       if not announcement.is_private and not bot.parse_boolean(announcement.asap):
         cutoff = datetime.datetime.utcnow() - datetime.timedelta(0, interval)
         log.debug('Getting logs from {}.'.format(cutoff))
-        result = await client.logs_from(channel, after = cutoff)
-        logs = list(result)
+        logs = []
+        async for message in client.logs_from(channel, after = cutoff):
+          logs.append(message)
         # Don't spam the same message in a quiet channel even if it hasn't
         # been posted since the cutoff.
         if len(logs) < bot.get('message_limit'):
           log.debug('Fewer than {} messages ({}).'.format(bot.get('message_limit'), len(logs)))
-          logs = await client.logs_from(channel, limit = bot.get('message_limit'))
+          logs = []
+          async for message in client.logs_from(channel, limit = bot.get('message_limit')):
+            logs.append(message)
         for message in logs:
           raw = re.sub(r'^(<?@\S+\s)+', '', message.content).strip()
           if digest in [bot.digest(message.content), bot.digest(raw)]: