def wrap_as_bot_command(bot, function, name): """ Wrap the given function as a bot command. """ is_bot_command = getattr(function, '_jabberbot_command', False) if is_bot_command: command = function else: @requires_subscription def wrapper(self, message, args): f_args = getargspec(function).args allowed_args = [bot, message, args] n = len(f_args) if n <= 3: args = allowed_args[3-n:] with captured_stdout() as captured: result = function(*args) if captured.output: self.message_queue.append(captured.output) else: result = None return result wrapper = update_wrapper(partial(wrapper, bot), function) command = botcmd(wrapper, name=name) return command
def directcmd(func): @wraps(func) def wrapper(self, origin, args): message = func(self, origin, args) username = unicode(origin.getFrom()).split('/')[1].replace(" ","") return u'@%s %s' % (username, message) return botcmd(wrapper)
def command(*_options, **kwargs): #Refactor me, use functools if not kwargs and len(_options) == 1 and hasattr(_options[0], '__call__'): f = _options[0] f = botcmd(f) return f else: def options_wrapper(func): parser = Options.build_parser(name=func.func_name, options=sorted(_options, key=lambda o: o.dest)) @wraps(func) def func_wrapper(self, mess, raw_args): func_options = process_args(raw_args, parser=parser, **kwargs) return func(self, mess, raw_args, func_options) func_wrapper = botcmd(func_wrapper) func_wrapper._options = _options func_wrapper.__doc__ = (func.__doc__ or "") + parser.format_help() return func_wrapper return options_wrapper
def directcmd(func): @wraps(func) def wrapper(self, origin, args): message = func(self, origin, args) username = unicode(origin.getFrom()).split('/')[1] return u'@"%s" %s' % (username, message) return botcmd(wrapper)
def directcmd(func): @wraps(func) def wrapper(self, origin, args): message = func(self, origin, args) username = unicode(origin.getFrom()).split("/")[1] return u'@"%s" %s' % (username, message) return botcmd(wrapper)
def directcmd(func): @wraps(func) def wrapper(self, origin, args): message = func(self, origin, args) if origin.getType() == 'groupchat': user = self.bot.get_sending_user(origin) return u'@%s %s' % (user.mention_name, message) else: return message return botcmd(wrapper)
def options_wrapper(func): parser = Options.build_parser(name=func.func_name, options=sorted(_options, key=lambda o: o.dest)) @wraps(func) def func_wrapper(self, mess, raw_args): func_options = process_args(raw_args, parser=parser, **kwargs) return func(self, mess, raw_args, func_options) func_wrapper = botcmd(func_wrapper) func_wrapper._options = _options func_wrapper.__doc__ = (func.__doc__ or "") + parser.format_help() return func_wrapper
def directcmd(func): def wrapper(self, origin, args): message = func(self, origin, args) username = unicode(origin.getFrom()).split('/')[1].split(' ')[0].lower() return "@%s %s" % (username, message) return botcmd(wrapper)