index : logbot | |
Archlinux32 log bot | gitolite user |
summaryrefslogtreecommitdiff |
author | Steve 'Ashcrow' Milner <stevem@gnulinux.net> | 2010-02-06 22:57:33 -0500 |
---|---|---|
committer | Steve 'Ashcrow' Milner <stevem@gnulinux.net> | 2010-02-06 22:57:33 -0500 |
commit | aaa7200fa2c17f03ad8cd7a023ad92159a58d17c (patch) | |
tree | 509dcf6f60ca03a4f6119ae6c96bd83d2f43ee03 | |
parent | 34101ad0f96b472ba5335d3a93c534273d1fe95e (diff) |
-rw-r--r-- | conf/example.conf | 9 | ||||
-rw-r--r-- | logbot.py | 47 |
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 @@ -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"> @@ -156,11 +149,37 @@ class LogBot(object): for channel in event.arguments(): self.server.join(channel) - -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) |