def parse_args(self, text): args = text.split() if not args or args[0] not in ["!w", "!weather"]: return None sargs = shlex.split(" ".join(args[1:])) parser = UndeadArgumentParser(add_help=False) parser.add_argument("zipcode", nargs="?", default="") parser.add_argument("-s", "--save", default="", dest="save_zipcode") return parser.parse_args(sargs)
def parse_args(self, text): args = text.split() if not args or args[0] != "!remind": return sargs = shlex.split(" ".join(args[1:])) parser = UndeadArgumentParser(add_help=False) parser.add_argument("time", type=int) parser.add_argument("msg", nargs=argparse.REMAINDER) tformat = parser.add_mutually_exclusive_group() tformat.add_argument("-s", dest="tmult", action="store_const", const=1) tformat.add_argument("-h", dest="tmult", action="store_const", const=60*60) tformat.add_argument("-d", dest="tmult", action="store_const", const=60*60*24) tformat.add_argument("-m", dest="tmult", action="store_const", const=60) return parser.parse_args(sargs)
def parse_args(self, text): if len(text) < 4: return None if self.shortcut and text[:2] == 's/': tokens = self.split_delimiter(text) if len(tokens) < 3 or not tokens[1]: return None pattern = tokens[1] repl = tokens[2] flags = "" if len(tokens) == 3 else tokens[3] line = self.get_first_number(flags) search = "s" in flags return [pattern, repl, line, search] args = text.split() if args[0] == "!replace": sargs = shlex.split(" ".join(args[1:])) parser = UndeadArgumentParser(add_help=False) parser.add_argument("pattern") parser.add_argument("repl") parser.add_argument("-l", "--line", type=int, default=-1, dest="line") parser.add_argument("-s", "--search", action="store_true", default=False, dest="search") pargs = parser.parse_args(sargs) return [pargs.pattern, pargs.repl, pargs.line, pargs.search] return None