[[Perl]]


-【参考というか,ほぼコピー】http://d.hatena.ne.jp/mjmania/20100213/1266033979
--変更点 1分おきに時間名をつけて吐き出す.
#!/usr/bin/perl	
	
use strict;	
use warnings;	
use AnyEvent::Twitter::Stream;	
use Config::Pit;	
use Data::Dumper;	
use Encode qw(encode);	
	
my $config = pit_get('twitter.com');	
my $method = 'sample';	
	
my $cv = AnyEvent->condvar;	
my $listener = AnyEvent::Twitter::Stream->new(	
    username => $config->{username},	
    password => $config->{password},	
    method   => $method,	
    #track    => 'google',	
    on_tweet => sub {	
        my $tweet = shift;	
        eval {	
            if ($tweet->{id} && $tweet->{user}{screen_name}	
                && $tweet->{text} && $tweet->{created_at}) {	
                $tweet->{text} = encode 'utf-8', $tweet->{text}	
                    if utf8::is_utf8($tweet->{text});	
                $tweet->{text} =~ s/\n/ /g;	
                my $LINE = sprintf("%s\t%d\t%s\t%s",	
                    $tweet->{user}{screen_name}, $tweet->{id},	
                    $tweet->{created_at}, $tweet->{text});	
	
		#日付取得	
		#時間	
		my @time = localtime(time);	
		$time[4]++;	
		$time[5] += 1900;	
		my $FILE  = "TwitterLog". "$time[5]$time[4]$time[3]-$time[2]:$time[1].dat";	
	
		#LOG収集	
		open(OUT,">>$FILE");	
                print OUT "$LINE\n";	
		close(OUT);	
            }	
        };	
        if ($@) {	
            warn Dumper $@;	
#            exit 1;	
        }	
    },	
    on_keepalive => sub {	
        warn "ping\n";	
    },	
    on_eof => $cv,	
);	
$cv->recv;