mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-27 06:19:25 +01:00
Improve factoid expansions
This commit is contained in:
parent
0f0797c0ee
commit
cf72a11658
@ -269,7 +269,7 @@ sub find_factoid {
|
|||||||
# check factoids
|
# check factoids
|
||||||
foreach my $channel (sort keys %{ $self->{factoids}->hash }) {
|
foreach my $channel (sort keys %{ $self->{factoids}->hash }) {
|
||||||
if($exact_channel) {
|
if($exact_channel) {
|
||||||
if($exact_trigger) {
|
if($exact_trigger == 1) {
|
||||||
next unless $from eq lc $channel;
|
next unless $from eq lc $channel;
|
||||||
} else {
|
} else {
|
||||||
next unless $from eq lc $channel or $channel eq '.*';
|
next unless $from eq lc $channel or $channel eq '.*';
|
||||||
@ -291,7 +291,7 @@ sub find_factoid {
|
|||||||
goto NEXT_DEPTH;
|
goto NEXT_DEPTH;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($exact_channel) {
|
if ($exact_channel == 1) {
|
||||||
return ($channel, $trigger);
|
return ($channel, $trigger);
|
||||||
} else {
|
} else {
|
||||||
push @results, [$channel, $trigger];
|
push @results, [$channel, $trigger];
|
||||||
@ -320,7 +320,7 @@ sub find_factoid {
|
|||||||
goto NEXT_DEPTH;
|
goto NEXT_DEPTH;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($exact_channel) {
|
if ($exact_channel == 1) {
|
||||||
return ($channel, $trigger);
|
return ($channel, $trigger);
|
||||||
} else {
|
} else {
|
||||||
push @results, [$channel, $trigger];
|
push @results, [$channel, $trigger];
|
||||||
@ -358,14 +358,19 @@ sub expand_factoid_vars {
|
|||||||
|
|
||||||
while ($action =~ /(?<!\\)\$([a-zA-Z0-9_:\-]+)/g) {
|
while ($action =~ /(?<!\\)\$([a-zA-Z0-9_:\-]+)/g) {
|
||||||
my $v = $1;
|
my $v = $1;
|
||||||
next if $v =~ m/^(nick|channel|randomnick)$/; # don't override special variables
|
next if $v =~ m/^(nick|channel|randomnick|args|arg\[.+\])$/; # don't override special variables
|
||||||
|
|
||||||
my $modifier = '';
|
my $modifier = '';
|
||||||
if ($v =~ s/(:.*)$//) {
|
if ($v =~ s/(:.*)$//) {
|
||||||
$modifier = $1;
|
$modifier = $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
my @factoids = $self->find_factoid($from, $v, undef, 0, 1);
|
if ($modifier =~ m/^:(#.*|global)$/i) {
|
||||||
|
$from = $1;
|
||||||
|
$from = '.*' if lc $from eq 'global';
|
||||||
|
}
|
||||||
|
|
||||||
|
my @factoids = $self->find_factoid($from, $v, undef, 2, 2);
|
||||||
next if not @factoids or not $factoids[0];
|
next if not @factoids or not $factoids[0];
|
||||||
|
|
||||||
my ($var_chan, $var) = ($factoids[0]->[0], $factoids[0]->[1]);
|
my ($var_chan, $var) = ($factoids[0]->[0], $factoids[0]->[1]);
|
||||||
|
Loading…
Reference in New Issue
Block a user