3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-30 07:59:42 +01: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 !~ /^#/; $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) { if(defined $alias_trigger) {
$self->{pbot}->logger->log("attempt to overwrite existing command\n"); $self->{pbot}->logger->log("attempt to overwrite existing command\n");
@ -227,7 +227,7 @@ sub add_regex {
return "/msg $nick Usage: regex <regex> <command>"; 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) { if(defined $trigger) {
$self->{pbot}->logger->log("$nick!$user\@$host attempt to overwrite $trigger\n"); $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 !~ /^#/; $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) { if(defined $trigger) {
$self->{pbot}->logger->log("$nick!$user\@$host attempt to overwrite $keyword\n"); $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 $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 $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 # factoid
if($factoids->{$channel}->{$trigger}->{type} eq 'text') { 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 # module
if($factoids->{$channel}->{$trigger}->{type} eq '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 # regex
if($factoids->{$channel}->{$trigger}->{type} eq '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"; return "/msg $nick $trigger is not a factoid or a module";

View File

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

View File

@ -180,7 +180,8 @@ sub interpret {
} elsif($command =~ /^([^ ]+)\s+is\s+(.*)$/) { } elsif($command =~ /^([^ ]+)\s+is\s+(.*)$/) {
my ($k, $a) = ($1, $2); 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) { if(defined $trigger) {
($keyword, $arguments) = ($k, "is $a"); ($keyword, $arguments) = ($k, "is $a");
} else { } else {

View File

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