All pastes #413226 Raw Edit

Anonymous

public python v1 · immutable
#413226 ·published 2007-03-28 07:30 UTC
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()