def __repr__(self):
return '<modlib.error %r>' % self.errormsg
def __str__(self):
- return self.errormsg
+ return str(self.errormsg)
class modlib(object):
# default (global) access levels
def __init__(self, name):
self.hooks = {}
self.numhooks = {}
+ self.chanhooks = {}
self.parent = None
self.name = name
self.parent.hook(cmd, func)
for num, func in self.numhooks.iteritems():
self.parent.hooknum(num, func)
+ for chan, func in self.chanhooks.iteritems():
+ self.parent.hookchan(chan, func)
return True
def modstop(self, parent):
for cmd, func in self.hooks.iteritems():
self.parent.unhook(cmd, func)
for num, func in self.numhooks.iteritems():
self.parent.unhooknum(num, func)
+ for chan, func in self.chanhooks.iteritems():
+ self.parent.unhookchan(chan, func)
return True
def hooknum(self, num):
return func
return realhook
+ def hookchan(self, chan, glevel=ANYONE, clevel=PUBLIC):
+ def realhook(func):
+ self.chanhooks[chan] = func
+ if self.parent is not None:
+ self.parent.hookchan(chan, func)
+ return func
+ return realhook
+
def hook(self, cmd, needchan=True, glevel=ANYONE, clevel=PUBLIC):
def realhook(func):
func.needchan = needchan