50 lines
1.1 KiB
Python
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)
|
||
|
|