summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Oliver <excid3@gmail.com>2010-02-07 10:14:14 -0600
committerChris Oliver <excid3@gmail.com>2010-02-07 10:14:14 -0600
commitf7d6cb90d7db3b03e5d0e16116fb5633e0c6541a (patch)
tree4ce33591c60659d6b1fe0a94a0bb772758624469
parent42fd79f24c14565dd031b8c155f4f0e9da53698b (diff)
parentaaa7200fa2c17f03ad8cd7a023ad92159a58d17c (diff)
downloadlogbot-f7d6cb90d7db3b03e5d0e16116fb5633e0c6541a.tar.xz
Merged ashcrow's addition of a config file
-rw-r--r--conf/example.conf9
-rw-r--r--logbot.py48
2 files changed, 43 insertions, 14 deletions
diff --git a/conf/example.conf b/conf/example.conf
new file mode 100644
index 0000000..8346f0a
--- /dev/null
+++ b/conf/example.conf
@@ -0,0 +1,9 @@
+[irc]
+network = irc.freenode.net
+port = 6667
+channels = #test2134
+nick = Testbot444324
+owners = some,people
+
+[log]
+folder = logs
diff --git a/logbot.py b/logbot.py
index 84a6e83..7e48713 100644
--- a/logbot.py
+++ b/logbot.py
@@ -33,20 +33,13 @@ __license__ = "GPL2"
import os
import os.path
import irclib
+
+from ConfigParser import ConfigParser
from ftplib import FTP
+from optparse import OptionParser
from time import strftime
-# Customizable Variables
-########################
-network = 'irc.freenode.net'
-port = 6667
-channels = ['#excid3', '#keryx']
-nick = 'Timber'
-owner = ['excid3|asus', 'mac9416']
-logs_folder = 'logs'
-
-
html_header = """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -116,7 +109,6 @@ class LogBot(object):
write(event.target(),
"%s left the room (Kicked by %s (%s))" % \
(
-
def handleMode(self, connection, event):
"""Handles mode changes
@@ -197,9 +189,37 @@ class LogBot(object):
def write(self):
pass
-def main():
+
+def main(conf):
+ """
+ Start the bot using a config file.
+
+ :Parameters:
+ - `conf`: config file location
+ """
+ CONFIG = ConfigParser()
+ CONFIG.read(conf)
+ network = CONFIG.get('irc', 'network')
+ port = CONFIG.getint('irc', 'port')
+ channels = CONFIG.get('irc', 'channels').split(',')
+ nick = CONFIG.get('irc', 'nick')
+ owner = CONFIG.get('irc', 'owners').split(',')
+ logs_folder = CONFIG.get('log', 'folder')
+
bot = LogBot(network, port, channels, owner, nick, logs_folder)
- bot.start()
+ try:
+ bot.start()
+ except KeyboardInterrupt:
+ pass
+
if __name__ == '__main__':
- main()
+ # Require a config
+ parser = OptionParser()
+ parser.add_option('-c', '--config', dest='conf', help='Config to use')
+ (options, args) = parser.parse_args()
+
+ if not options.conf or not os.access(options.conf, os.R_OK):
+ parser.print_help()
+ raise SystemExit(1)
+ main(options.conf)