Check RSS against the same number of messages that we might be posting.
authorCMDR furrycat <elite@furrycat.net>
Wed, 21 Sep 2016 11:27:59 +0000 (12:27 +0100)
committerCMDR furrycat <elite@furrycat.net>
Mon, 26 Sep 2016 08:23:42 +0000 (09:23 +0100)
bot.py

diff --git a/bot.py b/bot.py
index 5fee881..771c13a 100755 (executable)
--- a/bot.py
+++ b/bot.py
@@ -204,17 +204,18 @@ def do_rss(feed):
   summary = feed['summary'] if 'summary' in feed else False
   channel = client.get_channel(str(feed['channel']))
   url = feed['url']
-  # Complain if no read_message_history
-  # Set permissions!
+  d = feedparser.parse(url)
+  d.entries.reverse()
+  limit = len(d.entries)
+  if not limit:
+    limit = 100
   digests = []
-  logs = yield from client.logs_from(channel)
+  logs = yield from client.logs_from(channel, limit = limit)
   for message in logs:
     digest = hashlib.sha224(message.content.encode('utf-8')).hexdigest()
     log.debug('Saw previously posted RSS with digest {}'.format(digest))
     if digest not in digests:
       digests.append(digest)
-  d = feedparser.parse(url)
-  d.entries.reverse()
   for entry in d.entries:
     formatted = '*{}*\n'.format(entry['published']) if date else ''
     formatted += '**{}**\n{}'.format(entry['title'], entry['links'][0]['href'])