Plagger::Plugin::Filter::ChatBotUsi

誰かテストしてください(ぉ


package Plagger::Plugin::Filter::ChatBotUsi;
use strict;
use base qw( Plagger::Plugin );

use Encode;
use URI;
use XMLRPC::Lite;

$XML::Feed::RSS::PREFERRED_PARSER = 'XML::RSS::LibXML';

our $XML_RPC_URL = 'http://usikun.dip.jp/rpc';

sub register {
my($self, $context) = @_;
$context->register_hook(
$self,
'update.entry.fixup' => \&update,
);
}

sub update {
my($self, $context, $args) = @_;

$context->log(info => "ChatBot Usi API talk start : " . $args->{entry}->link);

my $rpc = XMLRPC::Lite->new;
$rpc->proxy($XML_RPC_URL);
my $body = $args->{entry}->body;

my $res = $rpc->call('ChatBot.talk',
XMLRPC::Data->type('string', $self->conf->{apikey}),
XMLRPC::Data->type('string', $self->conf->{name}),
XMLRPC::Data->type('string', $self->conf->{friend}),
XMLRPC::Data->type('string', $body),
);

if (my $fault = $res->fault){
for (keys %{$fault}){
$context->log(warn => "ChatBot Usi API talk failed : $_ => " . $fault->{$_});
}
} else {
$body = $res->result->{'message'};
$body =~ s/<//ig;
$body =~ s/"/"/ig;
}

$args->{entry}->body($body);
}

1;

__END__

=head1 NAME

Plagger::Plugin::Filter::ChatBotUsi ChatBot Usikun API Talk

=head1 SYNOPSIS

- module: Filter::ChatBotUsi
config:
apikey: XXXXXXXXXXXXXXXXXX
name: your name
friend: your friend name

=head1 DESCRIPTION

XXX Write the description for Filter::ChatBotUsi

=head1 CONFIG

XXX Document configuration variables if any.

=head1 AUTHOR

UnderDone

=cut

修正履歴
2006/11/16 $XML_RPC_URLの定義抜け修正