import irclib import random import re import os import sys commands = ['ping'] def processCommand(command, query): print "'%s'" % command print "'%s'" % query os.execlp(command, query) def handlePubMessage(connection, event): sender = event.source().split('!')[0] message = event.arguments()[0] cmd_check = re.compile('^!') m = cmd_check.match(message) if m: elements = message.split(' ', 1) command = elements[0][1:] if command in commands: processCommand(command, elements[1]) botid = random.randint(1, 100) network = 'irc.freenode.net' port = 6667 channel = '#mirwin' nick = "mirwin_%d" % botid name = "Mirwin %d" % botid irc = irclib.IRC() irc.add_global_handler('pubmsg', handlePubMessage) server = irc.server() server.connect(network, port, nick, ircname = name) server.join(channel) irc.process_forever()