package Bot::BasicBot::Pluggable::Module::Bash;
use strict;
use Bot::BasicBot::Pluggable::Module;
use base qw(Bot::BasicBot::Pluggable::Module);
use XML::RSS;
use LWP::Simple ();
use HTML::Entities;
sub said {
my ($self, $mess, $pri) = @_;
my $body = $mess->{body};
my $who = $mess->{who};
return unless ($pri == 2);
return unless $body =~ /^\s*bash\s+(\d+)/i;
my $id = $1;
my $rss = LWP::Simple::get("http://www.bash.org/xml/?$id");
return "Couldn't get content from Bash.org" unless defined $rss;
my $p = XML::RSS->new();
$p->parse($rss) || return "Couldn't parse the data I got :(";
my $item = shift @{$p->{'items'}} || return "Couldn't parse the data I got :(";
my $description = $item->{'description'};
return "$id is not a valid Bash id apparently" if (!defined $description || $description eq 'The IRC Quote Database');
$description = decode_entities($description);
$description =~ s!
!\n!gi;
return "${id}: $description";
}
sub help {
return "Commands: 'bash '";
}
1;
__END__
=head1 NAME
Bot::BasicBot::Pluggable::Module::Bash - get quotes from bash.org
=head1 IRC USAGE
bash
=head1 AUTHOR
Simon Wistow,
=head1 COPYRIGHT
Copyright 2005, Simon Wistow
Distributed under the same terms as Perl itself.
=head1 SEE ALSO
=cut