mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-30 07:59:42 +01:00
Interpreter: commands can now be split with ;;
This commit is contained in:
parent
9d6604da19
commit
0310145c7d
@ -217,6 +217,12 @@ sub interpret {
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# check for splitted commands
|
||||||
|
if ($stuff->{command} =~ m/^(.*?)\s*(?<!\\);;\s*(.*)/) {
|
||||||
|
$stuff->{command} = $1;
|
||||||
|
$stuff->{command_split} = $2;
|
||||||
|
}
|
||||||
|
|
||||||
my $cmdlist = $self->make_args($stuff->{command});
|
my $cmdlist = $self->make_args($stuff->{command});
|
||||||
if ($self->arglist_size($cmdlist) >= 4 and lc $cmdlist->[0] eq 'tell' and (lc $cmdlist->[2] eq 'about' or lc $cmdlist->[2] eq 'the')) {
|
if ($self->arglist_size($cmdlist) >= 4 and lc $cmdlist->[0] eq 'tell' and (lc $cmdlist->[2] eq 'about' or lc $cmdlist->[2] eq 'the')) {
|
||||||
# tell nick about cmd [args]
|
# tell nick about cmd [args]
|
||||||
@ -309,6 +315,9 @@ sub interpret {
|
|||||||
|
|
||||||
$stuff->{keyword} = $keyword;
|
$stuff->{keyword} = $keyword;
|
||||||
|
|
||||||
|
# unescape any escaped command splits
|
||||||
|
$arguments =~ s/\\;;/;;/g if defined $arguments;
|
||||||
|
|
||||||
# unescape any escaped substituted commands
|
# unescape any escaped substituted commands
|
||||||
$arguments =~ s/\\&\s*\{/&{/g if defined $arguments;
|
$arguments =~ s/\\&\s*\{/&{/g if defined $arguments;
|
||||||
|
|
||||||
@ -329,7 +338,6 @@ sub interpret {
|
|||||||
foreach my $func (@{$self->{handlers}}) {
|
foreach my $func (@{$self->{handlers}}) {
|
||||||
$result = &{$func->{subref}}($stuff);
|
$result = &{$func->{subref}}($stuff);
|
||||||
last if defined $result;
|
last if defined $result;
|
||||||
|
|
||||||
# reset any manipulated arguments
|
# reset any manipulated arguments
|
||||||
$stuff->{arguments} = $stuff->{original_arguments};
|
$stuff->{arguments} = $stuff->{original_arguments};
|
||||||
}
|
}
|
||||||
@ -819,6 +827,30 @@ sub handle_result {
|
|||||||
$result = "$stuff->{prepend} $result";
|
$result = "$stuff->{prepend} $result";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($stuff->{command_split}) {
|
||||||
|
my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick');
|
||||||
|
$stuff->{command} = delete $stuff->{command_split};
|
||||||
|
$self->{pbot}->{logger}->log("Handling split [$result][$stuff->{command}]\n");
|
||||||
|
$result =~ s#^/say #\n#i;
|
||||||
|
$result =~ s#^/me #\n* $botnick #i;
|
||||||
|
if (not length $stuff->{split_result}) {
|
||||||
|
$result =~ s/^\n//;
|
||||||
|
$stuff->{split_result} = $result;
|
||||||
|
} else {
|
||||||
|
$stuff->{split_result} .= $result;
|
||||||
|
}
|
||||||
|
$result = $self->interpret($stuff);
|
||||||
|
$self->handle_result($stuff, $result);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($stuff->{split_result}) {
|
||||||
|
my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick');
|
||||||
|
$result =~ s#^/say #\n#i;
|
||||||
|
$result =~ s#^/me #\n* $botnick #i;
|
||||||
|
$result = $stuff->{split_result} . $result;
|
||||||
|
}
|
||||||
|
|
||||||
my $original_result = $result;
|
my $original_result = $result;
|
||||||
|
|
||||||
my $use_output_queue = 0;
|
my $use_output_queue = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user