mirror of
https://github.com/pragma-/pbot.git
synced 2024-12-25 04:02:37 +01:00
Move special var expansion to expand_special_vars
This commit is contained in:
parent
c119043d2a
commit
7e76740f5b
@ -62,7 +62,7 @@ sub execute_module {
|
|||||||
|
|
||||||
$self->{pbot}->{logger}->log("(" . (defined $from ? $from : "(undef)") . "): $nick!$user\@$host: Executing module [$command] $module $arguments\n");
|
$self->{pbot}->{logger}->log("(" . (defined $from ? $from : "(undef)") . "): $nick!$user\@$host: Executing module [$command] $module $arguments\n");
|
||||||
|
|
||||||
$arguments = $self->{pbot}->{factoids}->expand_factoid_vars($from, $nick, $root_keyword, $arguments);
|
$arguments = $self->{pbot}->{factoids}->expand_special_vars($from, $nick, $root_keyword, $arguments);
|
||||||
$arguments = quotemeta($arguments);
|
$arguments = quotemeta($arguments);
|
||||||
|
|
||||||
if($command eq 'code-factoid' or exists $self->{pbot}->{factoids}->{factoids}->hash->{$channel}->{$trigger}->{unquote_spaces}) {
|
if($command eq 'code-factoid' or exists $self->{pbot}->{factoids}->{factoids}->hash->{$channel}->{$trigger}->{unquote_spaces}) {
|
||||||
|
@ -380,6 +380,22 @@ sub escape_json {
|
|||||||
return $json;
|
return $json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub expand_special_vars {
|
||||||
|
my ($self, $from, $nick, $root_keyword, $action) = @_;
|
||||||
|
|
||||||
|
$action =~ s/\$nick:json/$self->escape_json($nick)/ge;
|
||||||
|
$action =~ s/\$channel:json/$self->escape_json($from)/ge;
|
||||||
|
$action =~ s/\$randomnick:json/my $random = $self->{pbot}->{nicklist}->random_nick($from); $random ? $self->escape_json($random) : $self->escape_json($nick)/ge;
|
||||||
|
$action =~ s/\$0:json/$self->escape_json($root_keyword)/ge;
|
||||||
|
|
||||||
|
$action =~ s/\$nick/$nick/g;
|
||||||
|
$action =~ s/\$channel/$from/g;
|
||||||
|
$action =~ s/\$randomnick/my $random = $self->{pbot}->{nicklist}->random_nick($from); $random ? $random : $nick/ge;
|
||||||
|
$action =~ s/\$0\b/$root_keyword/g;
|
||||||
|
|
||||||
|
return validate_string($action);
|
||||||
|
}
|
||||||
|
|
||||||
sub expand_factoid_vars {
|
sub expand_factoid_vars {
|
||||||
my ($self, $from, $nick, $root_keyword, $action, @exclude) = @_;
|
my ($self, $from, $nick, $root_keyword, $action, @exclude) = @_;
|
||||||
|
|
||||||
@ -389,7 +405,7 @@ sub expand_factoid_vars {
|
|||||||
while (1) {
|
while (1) {
|
||||||
last if ++$depth >= 10;
|
last if ++$depth >= 10;
|
||||||
my $matches = 0;
|
my $matches = 0;
|
||||||
$action =~ s/\$0\b/$root_keyword/g;
|
$action =~ s/\$0/$root_keyword/g;
|
||||||
my $const_action = $action;
|
my $const_action = $action;
|
||||||
while ($const_action =~ /(\ba\s*|\ban\s*)?(?<!\\)\$([a-zA-Z0-9_:\-#\[\]]+)/gi) {
|
while ($const_action =~ /(\ba\s*|\ban\s*)?(?<!\\)\$([a-zA-Z0-9_:\-#\[\]]+)/gi) {
|
||||||
my ($a, $v) = ($1, $2);
|
my ($a, $v) = ($1, $2);
|
||||||
@ -468,15 +484,7 @@ sub expand_factoid_vars {
|
|||||||
$action =~ s/\\\$/\$/g;
|
$action =~ s/\\\$/\$/g;
|
||||||
|
|
||||||
unless (@exclude) {
|
unless (@exclude) {
|
||||||
$action =~ s/\$nick:json/$self->escape_json($nick)/ge;
|
$action = $self->expand_special_vars($from, $nick, $root_keyword, $action);
|
||||||
$action =~ s/\$channel:json/$self->escape_json($from)/ge;
|
|
||||||
$action =~ s/\$randomnick:json/my $random = $self->{pbot}->{nicklist}->random_nick($from); $random ? $self->escape_json($random) : $self->escape_json($nick)/ge;
|
|
||||||
$action =~ s/\$0:json/$self->escape_json($root_keyword)/ge;
|
|
||||||
|
|
||||||
$action =~ s/\$nick/$nick/g;
|
|
||||||
$action =~ s/\$channel/$from/g;
|
|
||||||
$action =~ s/\$randomnick/my $random = $self->{pbot}->{nicklist}->random_nick($from); $random ? $random : $nick/ge;
|
|
||||||
$action =~ s/\$0\b/$root_keyword/g;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return validate_string($action);
|
return validate_string($action);
|
||||||
@ -827,7 +835,7 @@ sub handle_action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (length $arguments) {
|
if (length $arguments) {
|
||||||
if ($action =~ m/\$j?args/ or $action =~ m/\$arg\[/) {
|
if ($action =~ m/\$args/ or $action =~ m/\$arg\[/) {
|
||||||
unless ($self->{factoids}->hash->{$channel}->{$keyword}->{interpolate} eq '0') {
|
unless ($self->{factoids}->hash->{$channel}->{$keyword}->{interpolate} eq '0') {
|
||||||
$action = $self->expand_action_arguments($action, $arguments, $nick);
|
$action = $self->expand_action_arguments($action, $arguments, $nick);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user