Twitterのフォロワーの活性をコンソールにグラフ化する
スポンサードリンク
Twitterの特定のアカウントのフォロワー達の最終書き込み日をグラフにして表示すればなんか見えてくるかなーて思って作ってみたが大して面白くなかった。
Filename: followers_activities.pl
#!/usr/bin/perl use strict; use warnings; use YAML::XS; use Net::Twitter; use Date::Parse; use DateTime; use Text::Graph; use Text::Graph::DataSet; my $screen_name = $ARGV[0] or die 'enter Twitter UserName.'; my $nt = Net::Twitter->new( traits => [qw/API::REST/],); my $now = DateTime->now( time_zone => 'Asia/Tokyo'); my $c = [ { count => 0, name => '1day', range => $now->clone->add( days => -1 ), }, { count => 0, name => '1week', range => $now->clone->add( weeks => -1 ), }, { count => 0, name => '1month',range => $now->clone->add( months => -1 ), }, { count => 0, name => '1year', range => $now->clone->add( years => -1 ), }, { count => 0, name => 'other', range => DateTime->from_epoch( epoch=> 0), }, ]; # TwitterからFollowersの情報を取得して最終発言日を集計 my @list = _get_twitter_value( $screen_name ); foreach my $item ( @list ) { my $epoch = str2time( $item->{status}->{created_at} ) || 1; my $create_at = DateTime->from_epoch( epoch => $epoch, time_zone => 'Asia/Tokyo', ); #print "$create_at\n"; for ( my $i = 0; $i < $#$c + 1; $i++ ) { if ( $c->[$i]->{range} < $create_at) { $c->[$i]->{count}++; last; } } } # グラフ表示 my @counts = map { $_->{count} } @$c; my @labels = map { $_->{name} } @$c; my $graph = Text::Graph->new( 'Bar', showval => 1, maxlen => 60,); print $graph->to_string( \@counts, labels =>\@labels,); exit; sub _get_twitter_value { my $screen_name = shift; my $cursor = -1; my @list; while ( $cursor != 0 ) { my $res = $nt->friends({ screen_name => $screen_name, cursor => $cursor, }); $cursor = $res->{next_cursor}; push @list, @{ $res->{users} }; } return @list; } __END__
実行例。CLCLCLというのは、わっとこのTwitter Usernameです。
$ ./followers_activities.pl CLCLCL 1day :************************************************** (126) 1week :******** (23) 1month : (7) 1year :** (11) other :* (8) $
Perl 5.12だと$#が使えなくなるとかどうとか聞いたけどどうするんだろ。確認してないけど。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3208
コメントする