ircbot/debug.py
2012-06-21 20:09:36 +09:00

50 lines
1.1 KiB
Python

import sys
client = None
def mod_init(cl):
global client
client = cl
def action(msg):
return '%cACTION %s%c' % (1, msg, 1)
def execbuf(nick):
if 'edit' not in sys.modules:
return
b = sys.modules['edit'].bufs
if nick not in b:
return
try:
exec('\n'.join(b[nick].buf))
except Exception, e:
client.sendto(nick, 'ERROR: %s' % str(e))
def on_pubchat(who, chan, msg):
if msg[:len(client.nick)] == client.nick:
nmsg = msg.split(':')[1:]
nargs = nmsg[0].split()
if len(nargs) < 1: return
if len(nmsg) > 1:
nargs = nargs + [':' + ':'.join(nmsg[1:])]
ncmd = nargs[0]
if ncmd == "raw":
client.send(' '.join(nargs[1:]))
if ncmd == "execbuf":
execbuf(who.split('!')[0])
if ncmd == "exec":
try:
exec(' '.join(nargs[1:]))
except Exception, e:
client.sendto(chan, 'ERROR: %s' % str(e))
def on_privchat(who, msg):
on_pubchat(who, who, client.nick + ': ' + msg)