rendered paste body#! /usr/bin/env pythonfrom ircbot import SingleServerIRCBotfrom irclib import nm_to_n, nm_to_h, irc_lower, ip_numstr_to_quad, ip_quad_to_numstrfrom pysqlite2 import dbapi2 as sqliteclass BotOptions: def LoadDB(self): self.connection = sqlite.connect('test.db') self.cursor = connection.cursor() def GetOption(self,option): self.cursor.execute('SELECT * FROM bot_options WHERE option=?',(option)) return self.cursor.fetchone()[1]class TestBot(SingleServerIRCBot): def __init__(self, channel, nickname, server, port=6667,debug): SingleServerIRCBot.__init__(self, [(server, port)], nickname, nickname) self.Option = BotOptions() self.channel = channel self.debug = debug def on_nicknameinuse(self, c, e): c.nick(c.get_nickname() + "_") def on_welcome(self, c, e): c.join(self.channel) def on_privmsg(self, c, e): def on_pubmsg(self, c, e): CommandChar=self.Option.GetOption("command_char") Suppress=self.Option.GetOption("suppress") if suppress == False: if e.arguments()[0].find(CommandChar): if self.debug: print e.arguments()[0] Command=e.arguments()[0].split(CommandChar,1)[1] if len(Command) > 1: self.do_command(Command) #a = e.arguments()[0].split(":", 1) #if len(a) > 1 and irc_lower(a[0]) == irc_lower(self.connection.get_nickname()): # self.do_command(e, a[1].strip()) # return def on_dccmsg(self, c, e): def on_dccchat(self, c, e): def do_command(self, e, cmd): nick = nm_to_n(e.source()) c = self.connectiondef main(): import sys if len(sys.argv) != 4: print "Usage: testbot <server[:port]> <channel> <nickname>" sys.exit(1) s = sys.argv[1].split(":", 1) server = s[0] if len(s) == 2: try: port = int(s[1]) except ValueError: print "Error: Erroneous port." sys.exit(1) else: port = 6667 channel = sys.argv[2] nickname = sys.argv[3] bot = TestBot(channel, nickname, server, port,True) bot.start()if __name__ == "__main__": main()