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)
from ConfigParser import SafeConfigParser
from heapq import heappop, heappush
import traceback
+import os.path
from api import Twitter, TwitterError
from util import htmlentitydecode
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()