+ def __repr__(self): return "<User %r (%d)>" % (self.nick, self.glevel)
+
+ class _BoundUser(object):
+ def __init__(self, user, bot):
+ self.__dict__['_bound_user'] = user
+ self.__dict__['_bound_bot'] = bot
+ def __getattr__(self, name):
+ return getattr(self._bound_user, name)
+ def __setattr__(self, name, value):
+ setattr(self._bound_user, name, value)
+ def msg(self, *args, **kwargs):
+ self._bound_bot.msg(self._bound_user, *args, **kwargs)
+ def slowmsg(self, *args, **kwargs):
+ self._bound_bot.slowmsg(self._bound_user, *args, **kwargs)
+ def fastmsg(self, *args, **kwargs):
+ self._bound_bot.fastmsg(self._bound_user, *args, **kwargs)
+ def __repr__(self): return "<_BoundUser %r %r>" % (self._bound_user, self._bound_bot)