[[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,	
	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 $@;	
        }	
	},	
	on_keepalive => sub {	
	warn "ping\n";	
	},	
	on_eof => $cv,	
	);	
	$cv->recv;