|
@@ -12,8 +12,11 @@ Message = ArgConverter(lambda _, __, msg: msg)
|
|
|
Database = ArgConverter(lambda _, db, __: db)
|
|
|
Logger = ArgConverter(lambda cmd, _, __: cmd.logger)
|
|
|
Bot = ArgConverter(lambda cmd, _, __: cmd.bot)
|
|
|
+ArgString = ArgConverter(lambda _, __, msg: msg.raw_args)
|
|
|
ArgList = ArgConverter(lambda _, __, msg: msg.arg_list())
|
|
|
Subcommand = ArgConverter(lambda _, __, msg: RollbotMessage.from_subcommand(msg))
|
|
|
+Subcommand.ArgString = ArgConverter(lambda _, __, msg: RollbotMessage.from_subcommand(msg).raw_args)
|
|
|
+Subcommand.ArgList = ArgConverter(lambda _, __, msg: RollbotMessage.from_subcommand(msg).arg_list())
|
|
|
|
|
|
|
|
|
class Arg(ArgConverter):
|
|
@@ -34,6 +37,14 @@ class Arg(ArgConverter):
|
|
|
RollbotFailure.INVALID_ARGUMENTS.with_reason(self.fail_msg.format(arg)).raise_exc()
|
|
|
|
|
|
|
|
|
+class _SubcArg(Arg):
|
|
|
+ def _convert(self, cmd, db, msg):
|
|
|
+ return super()._convert(self, cmd, db, RollbotMessage.from_subcommand(msg))
|
|
|
+
|
|
|
+
|
|
|
+Subcommand.Arg = _SubcArg
|
|
|
+
|
|
|
+
|
|
|
class Config(ArgConverter):
|
|
|
def __init__(self, key=None):
|
|
|
if key is None:
|
|
@@ -97,3 +108,16 @@ class Lazy(ArgConverter):
|
|
|
if not self.run:
|
|
|
self.result = self.child.conv(self.cmd, self.db, self.msg)
|
|
|
return self.result
|
|
|
+
|
|
|
+
|
|
|
+class _Executor:
|
|
|
+ def __init__(self, cmd, db, msg):
|
|
|
+ self.cmd = cmd
|
|
|
+ self.db = db
|
|
|
+ self.msg = msg
|
|
|
+
|
|
|
+ def run_with_deps(self, fn):
|
|
|
+ return _run_converter_function(fn, cmd, db, msg)
|
|
|
+
|
|
|
+
|
|
|
+Injector = ArgConverter(_Executor)
|