/usr/local/CPAN/CPANXR/Bot/BasicBot/Pluggable/Module/CPANXR.pm
# $Id: CPANXR.pm,v 1.3 2003/09/28 08:09:30 clajac Exp $
package Bot::BasicBot::Pluggable::Module::CPANXR;
use CPANXR::Database;
use Bot::BasicBot::Pluggable::Module::Base;
use base qw(Bot::BasicBot::Pluggable::Module::Base);
use strict;
sub said {
my ($self, $mess, $pri) = @_;
return unless $mess->{address} && $pri == 2;
my $body = $mess->{body};
my $who = $mess->{who};
my $channel = $mess->{channel};
if($body =~ /^find\s+subroutine\s+(.*?)$/) {
my $symbol_name = $1;
my $symbol_id = CPANXR::Database->select_symbol_by_name($symbol_name)->[0]->[0];
if($symbol_id >= 0) {
my $result = CPANXR::Database->select_declarations(symbol_id => $symbol_id);
if(@$result) {
my $result_str = "I found '$symbol_name' in ";
foreach my $ent(@$result) {
$result_str .= "$ent->[4] at line $ent->[2], "
}
chop $result_str;
chop $result_str;
return $result_str;
} else {
return "Can't find subroutine '$symbol_name'";
}
}
return "Sorry, can't find symbol '$symbol_name'";
}
return "questa?";
}
1;