Notify::XMPP
- 最新版はこのへんにあるす。
プロトタイプ以前のシロモノ。
だけど、jabber.jp経由でjabber.jpとかgmail.comに送れたので晒してみる。
package Plagger::Plugin::Notify::XMPP;
our $VERSION = '0.01';
use strict;
use warnings;
use base qw( Plagger::Plugin );
use Net::XMPP;
sub register {
my($self, $context) = @_;
$context->register_hook(
$self,
'publish.entry' => \¬ify,
);
}
sub notify {
my($self, $context, $args) = @_;
my $xmpp = Net::XMPP::Client->new(debuglevel=>0);
my $server_host = $self->conf->{server_host} || 'localhost';
my $server_port = $self->conf->{server_port} || '5222';
my $tls = $self->conf->{tls} || 0;
my $username = $self->conf->{username} || die "fixme";
my $password = $self->conf->{password} || die "fixme";
my $to = $self->conf->{to} || die "fixme";
my $on_auth = sub {
$xmpp->MessageSend(
to => $to,
subject => $args->{entry}->title_text,
body => $args->{entry}->title_text."\n".$args->{entry}->body_text,
);
$xmpp->Disconnect();
};
$xmpp->Connect(
hostname => $server_host,
port => $server_port,
tls => $tls,
);
$xmpp->SetCallBacks(onauth => $on_auth);
$xmpp->Execute(
hostname => $server_host,
port => $server_port,
tls => $tls,
username => $username,
password => $password,
);
}
1;