Ustreamで孫さんを見てました。
Twitterの流れが早くて視線移動が大変だったのだが、TwitterのポストをNicoLimeに渡してコメントが流れるウィンドウをUstreamの動画にかぶせて見るとどうなるかと思って作ってみた。

NicoLimeはニコニコ動画風に表示するソフトです。

#!/usr/bin/env perl

use strict;
use warnings;
use utf8;
use AnyEvent::Twitter::Stream;
use Encode;
use LWP::UserAgent;
use URI::Escape::JavaScript qw(escape);

my %nicolime = (
    host    => '192.168.1.1',
    port    => '6225',
    channel => '#channel',
    nick    => 'nick',
);

my %twistream = (
    username => 'username',
    password => 'password',
    method   => 'filter',
    track    => '#followmejp'
);

my $done = AnyEvent->condvar;

AnyEvent::Twitter::Stream->new(
    username => $twistream{username},
    password => $twistream{password},
    method   => $twistream{method},
    track    => $twistream{track},
    on_tweet => sub {
        my $tweet = shift;
        if ($tweet->{text} =~ /[あ-んア-ン]/) {
            $tweet->{text} =~ s/\r?\n/\x20/g if $tweet->{text} =~ /\r?\n/;
            $tweet->{text} =~ s/https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+//g
                if $tweet->{text} =~ /https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/;
            my $q
                = "http://$nicolime{host}:$nicolime{port}/"
                . "?c=" . escape($nicolime{channel})
                . "&n=" . escape($nicolime{nick})
                . "&m=" . escape($tweet->{text})
                ;
            LWP::UserAgent->new()->request(HTTP::Request->new("GET", $q));
        }
    },
    on_error => sub {
        my $error = shift;
        warn "ERROR: $error";
        $done->send;
    },
    on_eof => sub {
        $done->send;
    },
);

$done->recv;

割と適当ですが。NicoLimeが受け付けるパラメータの値が”%u”から始まるものしか受け付けなかった(‘A`)
とりあえずURLを削るようにしたけどRTとかQT以降も削ったりしないと一行の文字がやはり長くなりがちで見にくくなってしまうかなぁ。

いろいろ削ってニコニコ実況風にしたりしてちょっと楽しい感じに。

ルパンのハッシュタグでニコニコ実況風

ルパンのハッシュタグでニコニコ実況風