Ejemplo n.º 1
0
 def __init__(self, *args, **kwargs):
     super(ProbeBot, self).__init__(*args, **kwargs)
     self.argparse = BotArgumentParser()
     self.subparsers = self.argparse.add_subparsers()
     helpparser = self.subparsers.add_parser('help')
     helpparser.set_defaults(func=self.format_help)
Ejemplo n.º 2
0
 def __init__(self, *args, **kwargs):
     super(ProbeBot, self).__init__(*args, **kwargs)
     self.argparse = BotArgumentParser()
     self.subparsers = self.argparse.add_subparsers()
     helpparser = self.subparsers.add_parser("help")
     helpparser.set_defaults(func=self.format_help)
Ejemplo n.º 3
0
class ProbeBot(bot.BenderJab):
    def __init__(self, *args, **kwargs):
        super(ProbeBot, self).__init__(*args, **kwargs)
        self.argparse = BotArgumentParser()
        self.subparsers = self.argparse.add_subparsers()
        helpparser = self.subparsers.add_parser('help')
        helpparser.set_defaults(func=self.format_help)

    def logon(self, jid=None, password=None, resource=None):
        super(ProbeBot, self).logon(jid, password, resource)
        print("registering")
        self.cl.RegisterHandler('iq', self.iqCB)


    def list_commands(self, arg):
        return "Available commands: " + ", ".join(list(self.commands.keys()))

    def messageCB(self, conn, msg):
        tree = fromstring(str(msg))
        dump(tree)
        return super(ProbeBot, self).messageCB(conn, msg)

    def presenceCB(self, conn, msg):
        tree = fromstring(str(msg))
        dump(tree)
        return super(ProbeBot, self).presenceCB(conn, msg)

    def iqCB(self, dis, stanza):
        #print "dis:", unicode(dis)
        tree = fromstring(str(stanza))
        dump(tree)

    def format_help(self, args):
        return self.argparse.format_help()

    def _parser(self, message, who):
        if message:
            cmdline = shlex.split(message)
            args = self.argparse.parse_args(cmdline)
            print("args", args)
            args.frm = who
            if args.func:
                return args.func(args)
            return "Didn't understand:" + str(message)

    def command(self, name, **kwargs):
        def wrapper(func):
            if not hasattr(func, SUBPARSER):
                func.subparser = self.subparsers.add_parser(name, **kwargs)
                func.subparser.prog = name
                func.subparser.set_defaults(func=func)
                func.subparser.set_defaults(bot=self)
            return func
        return wrapper

    def argument(self, *args, **kwargs):
        def wrapper(func):
            if not hasattr(func, SUBPARSER):
                raise RuntimeError("Please use bot.command first")
            func.subparser.add_argument(*args, **kwargs)
            return func
        return wrapper
Ejemplo n.º 4
0
class ProbeBot(bot.BenderJab):
    def __init__(self, *args, **kwargs):
        super(ProbeBot, self).__init__(*args, **kwargs)
        self.argparse = BotArgumentParser()
        self.subparsers = self.argparse.add_subparsers()
        helpparser = self.subparsers.add_parser("help")
        helpparser.set_defaults(func=self.format_help)

    def logon(self, jid=None, password=None, resource=None):
        super(ProbeBot, self).logon(jid, password, resource)
        print("registering")
        self.cl.RegisterHandler("iq", self.iqCB)

    def list_commands(self, arg):
        return "Available commands: " + ", ".join(list(self.commands.keys()))

    def messageCB(self, conn, msg):
        tree = fromstring(str(msg))
        dump(tree)
        return super(ProbeBot, self).messageCB(conn, msg)

    def presenceCB(self, conn, msg):
        tree = fromstring(str(msg))
        dump(tree)
        return super(ProbeBot, self).presenceCB(conn, msg)

    def iqCB(self, dis, stanza):
        # print "dis:", unicode(dis)
        tree = fromstring(str(stanza))
        dump(tree)

    def format_help(self, args):
        return self.argparse.format_help()

    def _parser(self, message, who):
        if message:
            cmdline = shlex.split(message)
            args = self.argparse.parse_args(cmdline)
            print("args", args)
            args.frm = who
            if args.func:
                return args.func(args)
            return "Didn't understand:" + str(message)

    def command(self, name, **kwargs):
        def wrapper(func):
            if not hasattr(func, SUBPARSER):
                func.subparser = self.subparsers.add_parser(name, **kwargs)
                func.subparser.prog = name
                func.subparser.set_defaults(func=func)
                func.subparser.set_defaults(bot=self)
            return func

        return wrapper

    def argument(self, *args, **kwargs):
        def wrapper(func):
            if not hasattr(func, SUBPARSER):
                raise RuntimeError("Please use bot.command first")
            func.subparser.add_argument(*args, **kwargs)
            return func

        return wrapper