e.makeoptions() e.bind(bot) if event.chan and e.usercmnd in event.chan.data.silentcommands: e.silent = True e.shouldwait = True result = bot.plugs.dispatch(bot, e) else: logging.debug("dispatch - no go for %s (cc is %s)" % (event.auth or event.userhost, execstr)) result = None except NoSuchUser, ex: logging.error("no such user: %s" % str(ex)) result = None except NoSuchCommand: logging.info("no such command: %s" % event.usercmnd) result = None return result ## register callback last_callbacks.add("PRIVMSG", dispatch, predispatch) last_callbacks.add("MESSAGE", dispatch, predispatch) last_callbacks.add("BLIP_SUBMITTED", dispatch, predispatch) last_callbacks.add("WEB", dispatch, predispatch) last_callbacks.add("CONSOLE", dispatch, predispatch) last_callbacks.add("DCC", dispatch, predispatch) last_callbacks.add("DISPATCH", dispatch, predispatch) last_callbacks.add("CMND", dispatch, predispatch) last_callbacks.add("CONVORE", dispatch, predispatch) last_callbacks.add("TORNADO", dispatch, predispatch)
logging.debug("dispatch - execstr is %s" % execstr) try: if execstr: event.iscommand = True event.dontclose = True e = cpy(event) e.usercmnd = execstr.split()[0] e.txt = execstr e.showexception = True if not e.options: e.makeoptions() e.bind(bot) if e.usercmnd in event.chan.data.silentcommands: e.silent = True result = bot.plugs.dispatch(bot, e) else: logging.debug("dispatch - no go for %s (cc is %s)" % (event.auth or event.userhost, execstr)) result = None except NoSuchUser, ex: logging.error("no such user: %s" % str(ex)) ; result = None except NoSuchCommand: logging.info("no such command: %s" % event.usercmnd) ; result = None return result ## register callback last_callbacks.add('PRIVMSG', dispatch, predispatch) last_callbacks.add('MESSAGE', dispatch, predispatch) last_callbacks.add('BLIP_SUBMITTED', dispatch, predispatch) last_callbacks.add('WEB', dispatch, predispatch) last_callbacks.add('CONSOLE', dispatch, predispatch) last_callbacks.add('DCC', dispatch, predispatch) last_callbacks.add('DISPATCH', dispatch, predispatch) last_callbacks.add('CMND', dispatch, predispatch)
if event.userhost in bot.ignore: logging.warn("%s - ignore on %s" % (bot.name, event.userhost)) ; return if event.nodispatch: logging.warn("dispatch - nodispatch option is set - ignoring %s" % event.userhost) return bot.status = "dispatch" event.bind(bot) if event.iscommand or event.hascc() or event.wouldmatchre(): try: event.iscommand = True if not event.options: event.makeoptions() try: result = event.execute() except NoSuchCommand, ex: logging.warn("no such command: %s" % event.usercmnd) if event.giveresponse: event.reply("no %s command found" % str(ex).strip()) event.launched() ; event.ready() except Exception, ex: handle_exception() else: logging.debug("dispatch - no go for %s" % event.auth or event.userhost) event.launched() ; event.ready() ## register callback last_callbacks.add('PRIVMSG', dispatch, predispatch, speed=3, force=True) last_callbacks.add('MESSAGE', dispatch, predispatch, force=True) last_callbacks.add('WEB', dispatch, predispatch, force=True) last_callbacks.add('CONSOLE', dispatch, predispatch, force=True) last_callbacks.add('DCC', dispatch, predispatch, force=True) last_callbacks.add('DISPATCH', dispatch, predispatch, force=True) last_callbacks.add('CMND', dispatch, predispatch, force=True) last_callbacks.add('TORNADO', dispatch, predispatch, force=True)