typester / irssi-plugins

This URL has Read+Write access

irssi-plugins / hilight2im.pl
100644 36 lines (25 sloc) 0.949 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use strict;
use warnings;
 
use Glib;
 
use Irssi;
use AnyEvent::HTTP;
 
use HTTP::Request::Common;
 
our $VERSION = '0.1';
 
our %IRSSI = (
    name => 'hilight2im',
    description => 'notify hilight message to IM via im.kayac.com api',
    authors => 'Daisuke Murase',
);
 
sub sig_printtext {
    my ($dest, $text, $stripped) = @_;
 
    if ( $dest->{level} & MSGLEVEL_HILIGHT ) {
        my $user = Irssi::settings_get_str('im_kayac_com_username') or return;
        my $msg = sprintf('[irssi] %s %s', $dest->{target}, $stripped);
 
        my $req = POST "http://im.kayac.com/api/post/$user", [ message => $msg ];
        my %headers = map { $_ => $req->header($_), } $req->headers->header_field_names;
 
        my $r;
        $r = http_post $req->uri, $req->content, headers => \%headers, sub { undef $r };
    }
}
 
Irssi::signal_add('print text' => \&sig_printtext);
Irssi::settings_add_str('im_kayac_com', 'im_kayac_com_username', '');