Twitter/AnimeKantoがうらやましかったのでTwitter/AnimeKansaiを作った

AnimeKanto : 関東のアニメ情報をTwitterにFeedによると、関東のアニメの放送情報をしゃべるTwitterボットがあるようです。これは良さそう!shaoさん++。

といっても、滋賀県在住の私と致しましては、関東の放送情報が流れてきてもあんまり意味がないわけで。そこで、関西バージョンのアニメ放送情報Twitterボットを作ってみました。

screenshot
Twitter/AnimeKansai

仕様はだいたい、AnimeKantoに合わせてあります。現在時刻から10分以内に始まるアニメを10分ごとに通知します。あまり動かしてないので、ちゃんと通知できてるかは、微調整していきますよ。

http://www.douzemille.net/~yohei/images/animekansai.png

AnimeKantoみたいなかっこいいアイコンを募集中です。

ちなみにPerlスクリプトです。コードは以下。cronでぐるぐる。

use strict;
use warnings;
use Net::Twitter;
use XML::Feed;
use URI;
use Perl6::Say;
use DateTime;
use Encode;

my $rss_url = URI->new('http://cal.syoboi.jp/rss.php');
$rss_url->query_form(
    filter   => 0,
    usr      => 'user',
    titlefmt => '$(Mark) $(StTime) [$(ChName)] $(Title) $(SubTitleB)',
);

my $feed = XML::Feed->parse(URI->new($rss_url));
my $after_10m = DateTime->now(time_zone => 'local')
                        ->add( minutes => 11 );
my $twitter
    = Net::Twitter->new(username=>'user', password=>'pass');

for my $entry ($feed->entries) {
    if ( DateTime->compare($entry->issued, DateTime->now) >= 0
      && DateTime->compare($after_10m, $entry->issued)    >= 0 ) {
        my $title = $entry->title;
        $title =~ s{\s? \d\d/\d\d \s}{}xms;
        $twitter->update(encode_utf8($title));
    }
}