#!/usr/bin/perl -w # 2010/10/25 # noriko ( norikosama at gmail.com ) use strict; use warnings; use Encode; use FindBin; use XML::FeedPP; use Digest::MD5; use DateTime::Format::W3CDTF; use Template; my $source = "http://search.twitter.com/search.atom?lang=ja&q=%23RO&page="; # RSS の読み込み my @data; for(1..7){ my $feed = XML::FeedPP->new($source . $_); my @updates; for my $item ($feed->get_item()) { $_ = $item->author; s/^([^\(]+) \(.+$/$1/g; my $author = $_; my $content = $item->get("content"); $_ = $content; my $content2 = $content; $content2 =~s/\r\n//g; $content2 =~s/]+>\#(ro|RO)<\/b><\/a>//g; $content2 =~ s/&#([0-9]+);/chr($1)/ge; $content2 =~ s/&#[xX]([0-9A-Fa-f]+);/chr(hex $1)/ge; $content2 =~s/]+>\#[0-9a-zA-Z_ ]+<\/a>//g; my $hoge = encode('utf8', $content2); $content2 = $hoge; my $dt = DateTime::Format::W3CDTF->parse_datetime($item->get("updated")); $dt = $dt->add( hours => 9 ); $_ = $item->get('id'); s/^.+:([0-9]+)$/$1/g; my $id = $_; my $update = $dt->year . "/" . sprintf("%02d" , $dt->month) . "/" . sprintf("%02d" ,$dt->day) . " " . sprintf("%02d" ,$dt->hour) . ":" . sprintf("%02d" ,$dt->min); my $line; $line = { 'author' => $author, 'link' => $item->link(), 'content' => $content, 'update' => $update, 'status' => $id, 'content2' => $content2, }; push @data , $line; } } my $tt = Template->new(); my $output; $tt->process('tt.tpl', {'line' => \@data}, \$output ) || die $tt->error(); open FILE, ">index.html"; print FILE $output; close FILE; undef $tt; my $ttm = Template->new(); my $output2; $ttm->process('ttm3.tpl', {'line' => \@data}, \$output2 ) || die $ttm->error(); open FILE, ">mob.html"; print FILE $output2; close FILE;