]> jfr.im git - z_archive/twitter.git/blobdiff - twitter/ircbot.py
Another Line
[z_archive/twitter.git] / twitter / ircbot.py
index 876007d95781056781c29e9d6ed0e8f2c35a9dc1..a10a5f175a6f2ae8145621a2a2a8055a43504379 100644 (file)
@@ -24,10 +24,9 @@ email: <twitter_account_email>
 password: <twitter_account_password>
 
   If no config file is given "twitterbot.ini" will be used by default.
-
 """
 
-BOT_VERSION = "TwitterBot 0.4 (mike.verdone.ca/twitter)"
+BOT_VERSION = "TwitterBot 1.0 (http://mike.verdone.ca/twitter)"
 
 IRC_BOLD = chr(0x02)
 IRC_ITALIC = chr(0x16)
@@ -40,6 +39,7 @@ from dateutil.parser import parse
 from ConfigParser import SafeConfigParser
 from heapq import heappop, heappush
 import traceback
+import os.path
 
 from api import Twitter, TwitterError
 from util import htmlentitydecode
@@ -239,18 +239,42 @@ def load_config(filename):
     defaults = dict(server=dict(port=6667, nick="twitterbot"))
     cp = SafeConfigParser(defaults)
     cp.read((filename,))
+    
+    # attempt to read these properties-- they are required
+    cp.get('twitter', 'email'),
+    cp.get('twitter', 'password')
+    cp.get('irc', 'server')
+    cp.getint('irc', 'port')
+    cp.get('irc', 'nick')
+    cp.get('irc', 'channel')
+
     return cp
 
+# So there was a joke here about the twitter business model
+# but I got rid of it. Not because I want this codebase to
+# be "professional" in any way, but because someone forked
+# this and deleted the comment because they couldn't take
+# a joke. Hi guy!
+#
+# Fact: The number one use of Google Code is to look for that
+# comment in the Linux kernel that goes "FUCK me gently with
+# a chainsaw." Pretty sure Linus himself wrote it.
+
 def main():
     configFilename = "twitterbot.ini"
     if (sys.argv[1:]):
         configFilename = sys.argv[1]
+        
     try:
+        if not os.path.exists(configFilename):
+            raise Exception()
         load_config(configFilename)
-    except:
-        print >> sys.stderr, "Error loading ini file %s" %(
+    except Exception, e:
+        print >> sys.stderr, "Error while loading ini file %s" %(
             configFilename)
-        print __doc__
+        print >> sys.stderr, e
+        print >> sys.stderr, __doc__
         sys.exit(1)
+
     bot = TwitterBot(configFilename)
     return bot.run()