Respect DRYRUN.
authorCMDR furrycat <elite@furrycat.net>
Mon, 26 Sep 2016 09:01:07 +0000 (10:01 +0100)
committerCMDR furrycat <elite@furrycat.net>
Mon, 26 Sep 2016 10:19:50 +0000 (11:19 +0100)
bot.py

diff --git a/bot.py b/bot.py
index fbb5382..4b43835 100755 (executable)
--- a/bot.py
+++ b/bot.py
@@ -6,11 +6,14 @@ import discord
 import feedparser
 import hashlib
 import logging
+import os
 import pexpect
 import random
 import re
 import sys
 
+dryrun = os.getenv('DRYRUN') is not None
+
 if sys.version_info >= (3, 0):
   import urllib.request
 else:
@@ -206,6 +209,9 @@ def set_role(member, role_name = 'Unassigned', minimum = 1):
   if minimum is not None and len(member.roles) > minimum:
     return
 
+  if dryrun:
+    log.info('Not assigning {} role to {}'.format(role.name, member.name))
+    return
   log.info('Adding {} role to {}'.format(role.name, member.name))
   try:
     yield from client.add_roles(member, role)
@@ -276,12 +282,15 @@ def do_rss(feed):
     if digest in digests:
       log.debug("Already posted RSS with digest {}".format(digest))
       continue
-    log.info('Posting to {}: {}'.format(channel, formatted))
     try:
-      message = yield from client.send_message(channel, formatted)
-      digest = hashlib.sha224(message.content.encode('utf-8')).hexdigest()
-      digests.append(digest)
-      log.debug('Posted RSS with digest {}'.format(digest))
+      if dryrun:
+        log.info('Dryrun: Not posting to {}: {}'.format(channel, formatted))
+      else:
+        log.info('Posting to {}: {}'.format(channel, formatted))
+        message = yield from client.send_message(channel, formatted)
+        digest = hashlib.sha224(message.content.encode('utf-8')).hexdigest()
+        digests.append(digest)
+        log.debug('Posted RSS with digest {}'.format(digest))
     except:
       pass