Expect IM keyword argument in command to be at the begining of the args list
This commit is contained in:
parent
5fae67255b
commit
358499e6d5
1 changed files with 8 additions and 5 deletions
|
|
@ -175,20 +175,23 @@ class IRC(Abstract):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
args = text.split(' ')
|
args = text.split(' ')
|
||||||
|
|
||||||
# Extract explicit named arguments: @key=value or just @key
|
# Extract explicit named arguments: @key=value or just @key, only at begening
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
for i in range(len(args) - 1, 0, -1):
|
while len(args) > 1:
|
||||||
arg = args[i]
|
arg = args[1]
|
||||||
if len(arg) > 2:
|
if len(arg) > 2:
|
||||||
if arg[0:2] == '\\@':
|
if arg[0:2] == '\\@':
|
||||||
args[i] = arg[1:]
|
args[1] = arg[1:]
|
||||||
elif arg[0] == '@':
|
elif arg[0] == '@':
|
||||||
arsp = arg[1:].split("=", 1)
|
arsp = arg[1:].split("=", 1)
|
||||||
if len(arsp) == 2:
|
if len(arsp) == 2:
|
||||||
kwargs[arsp[0]] = arsp[1]
|
kwargs[arsp[0]] = arsp[1]
|
||||||
else:
|
else:
|
||||||
kwargs[arg[1:]] = None
|
kwargs[arg[1:]] = None
|
||||||
args.pop(i)
|
args.pop(1)
|
||||||
|
continue
|
||||||
|
# Futher argument are considered as normal argument (this helps for subcommand treatment)
|
||||||
|
break
|
||||||
|
|
||||||
return message.Command(cmd=args[0],
|
return message.Command(cmd=args[0],
|
||||||
args=args[1:],
|
args=args[1:],
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue