3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-10-01 17:16:39 +02:00

Adding factoid in a channel now creates that factoid in that channel instead of .*; info command now shows what channel factoid belongs to

This commit is contained in:
Pragmatic Software 2010-06-21 13:28:54 +00:00
parent 645310de15
commit 562d265261
4 changed files with 17 additions and 10 deletions

View File

@ -191,7 +191,7 @@ sub alias {
}
$from = '.*' if not defined $from or $from !~ /^#/;
my ($channel, $alias_trigger) = $self->{pbot}->factoids->find_factoid($from, $alias);
my ($channel, $alias_trigger) = $self->{pbot}->factoids->find_factoid($from, $alias, undef, 1);
if(defined $alias_trigger) {
$self->{pbot}->logger->log("attempt to overwrite existing command\n");
@ -227,7 +227,7 @@ sub add_regex {
return "/msg $nick Usage: regex <regex> <command>";
}
my ($channel, $trigger) = $self->{pbot}->factoids->find_factoid($from, $keyword);
my ($channel, $trigger) = $self->{pbot}->factoids->find_factoid($from, $keyword, undef, 1);
if(defined $trigger) {
$self->{pbot}->logger->log("$nick!$user\@$host attempt to overwrite $trigger\n");
@ -250,7 +250,7 @@ sub add_text {
$from = '.*' if not defined $from or $from !~ /^#/;
my ($channel, $trigger) = $self->{pbot}->factoids->find_factoid($from, $keyword);
my ($channel, $trigger) = $self->{pbot}->factoids->find_factoid($from, $keyword, undef, 1);
if(defined $trigger) {
$self->{pbot}->logger->log("$nick!$user\@$host attempt to overwrite $keyword\n");
@ -366,19 +366,21 @@ sub info {
my $created_ago = ago(gettimeofday - $factoids->{$channel}->{$trigger}->{created_on});
my $ref_ago = ago(gettimeofday - $factoids->{$channel}->{$trigger}->{last_referenced_on}) if defined $factoids->{$channel}->{$trigger}->{last_referenced_on};
my $chan = ($channel eq '.*' ? 'all channels' : $channel);
# factoid
if($factoids->{$channel}->{$trigger}->{type} eq 'text') {
return "$trigger: Factoid submitted by " . $factoids->{$channel}->{$trigger}->{owner} . " on " . localtime($factoids->{$channel}->{$trigger}->{created_on}) . " [$created_ago], referenced " . $factoids->{$channel}->{$trigger}->{ref_count} . " times (last by " . $factoids->{$channel}->{$trigger}->{ref_user} . (exists $factoids->{$channel}->{$trigger}->{last_referenced_on} ? " on " . localtime($factoids->{$channel}->{$trigger}->{last_referenced_on}) . " [$ref_ago]" : "") . ")";
return "$trigger: Factoid submitted by " . $factoids->{$channel}->{$trigger}->{owner} . " for $chan on " . localtime($factoids->{$channel}->{$trigger}->{created_on}) . " [$created_ago], referenced " . $factoids->{$channel}->{$trigger}->{ref_count} . " times (last by " . $factoids->{$channel}->{$trigger}->{ref_user} . (exists $factoids->{$channel}->{$trigger}->{last_referenced_on} ? " on " . localtime($factoids->{$channel}->{$trigger}->{last_referenced_on}) . " [$ref_ago]" : "") . ")";
}
# module
if($factoids->{$channel}->{$trigger}->{type} eq 'module') {
return "$trigger: Module loaded by " . $factoids->{$channel}->{$trigger}->{owner} . " on " . localtime($factoids->{$channel}->{$trigger}->{created_on}) . " [$created_ago] -> http://code.google.com/p/pbot2-pl/source/browse/trunk/modules/" . $factoids->{$channel}->{$trigger}->{action} . ", used " . $factoids->{$channel}->{$trigger}->{ref_count} . " times (last by " . $factoids->{$channel}->{$trigger}->{ref_user} . (exists $factoids->{$channel}->{$trigger}->{last_referenced_on} ? " on " . localtime($factoids->{$channel}->{$trigger}->{last_referenced_on}) . " [$ref_ago]" : "") . ")";
return "$trigger: Module loaded by " . $factoids->{$channel}->{$trigger}->{owner} . " for $chan on " . localtime($factoids->{$channel}->{$trigger}->{created_on}) . " [$created_ago] -> http://code.google.com/p/pbot2-pl/source/browse/trunk/modules/" . $factoids->{$channel}->{$trigger}->{action} . ", used " . $factoids->{$channel}->{$trigger}->{ref_count} . " times (last by " . $factoids->{$channel}->{$trigger}->{ref_user} . (exists $factoids->{$channel}->{$trigger}->{last_referenced_on} ? " on " . localtime($factoids->{$channel}->{$trigger}->{last_referenced_on}) . " [$ref_ago]" : "") . ")";
}
# regex
if($factoids->{$channel}->{$trigger}->{type} eq 'regex') {
return "$trigger: Regex created by " . $factoids->{$channel}->{$trigger}->{owner} . " on " . localtime($factoids->{$channel}->{$trigger}->{created_on}) . " [$created_ago], used " . $factoids->{$channel}->{$trigger}->{ref_count} . " times (last by " . $factoids->{$channel}->{$trigger}->{ref_user} . (exists $factoids->{$channel}->{$trigger}->{last_referenced_on} ? " on " . localtime($factoids->{$channel}->{$trigger}->{last_referenced_on}) . " [$ref_ago]" : "") . ")";
return "$trigger: Regex created by " . $factoids->{$channel}->{$trigger}->{owner} . " for $chan on " . localtime($factoids->{$channel}->{$trigger}->{created_on}) . " [$created_ago], used " . $factoids->{$channel}->{$trigger}->{ref_count} . " times (last by " . $factoids->{$channel}->{$trigger}->{ref_user} . (exists $factoids->{$channel}->{$trigger}->{last_referenced_on} ? " on " . localtime($factoids->{$channel}->{$trigger}->{last_referenced_on}) . " [$ref_ago]" : "") . ")";
}
return "/msg $nick $trigger is not a factoid or a module";

View File

@ -153,7 +153,7 @@ sub export_factoids {
}
sub find_factoid {
my ($self, $from, $keyword, $arguments) = @_;
my ($self, $from, $keyword, $arguments, $exact_channel) = @_;
$from = '.*' if not defined $from;
@ -161,7 +161,11 @@ sub find_factoid {
my @result = eval {
foreach my $channel (sort keys %{ $self->factoids->hash }) {
next unless $from =~ m/$channel/i;
if($exact_channel) {
next unless $from eq $channel;
} else {
next unless $from =~ m/$channel/i;
}
foreach my $trigger (keys %{ $self->factoids->hash->{$channel} }) {
if($self->factoids->hash->{$channel}->{$trigger}->{type} eq 'regex') {
if($string =~ m/$trigger/i) {

View File

@ -180,7 +180,8 @@ sub interpret {
} elsif($command =~ /^([^ ]+)\s+is\s+(.*)$/) {
my ($k, $a) = ($1, $2);
my ($channel, $trigger) = $pbot->factoids->find_factoid($from, $k);
my ($channel, $trigger) = $pbot->factoids->find_factoid($from, $k, undef, 1);
if(defined $trigger) {
($keyword, $arguments) = ($k, "is $a");
} else {

View File

@ -13,7 +13,7 @@ use warnings;
# These are set automatically by the build/commit script
use constant {
BUILD_NAME => "PBot",
BUILD_REVISION => 190,
BUILD_REVISION => 191,
BUILD_DATE => "2010-06-21",
};