X-Git-Url: http://lab.mitty.jp/git/?a=blobdiff_plain;f=twitter%2Ftwitterbot.pl;h=406ee128f4ca5a883417a86dc12db8896903dafe;hb=e1132d93be19e858e374644d81e8fc28d09e2954;hp=249c1bc58e0b85ad5e0ef0add7166293d828a626;hpb=ac68e58e80216af6f9ef28e7b0bdd66a9a2c3006;p=lab.git diff --git a/twitter/twitterbot.pl b/twitter/twitterbot.pl index 249c1bc..406ee12 100755 --- a/twitter/twitterbot.pl +++ b/twitter/twitterbot.pl @@ -12,9 +12,11 @@ use utf8; use Net::Twitter::Lite; use FindBin qw($Bin); use YAML::Tiny; +use Date::Parse qw(str2time); -sub VERBOSE () { $ARGV[0] eq 'verbose' }; -sub DEBUG () { VERBOSE or $ARGV[0] eq 'debug' }; +my $_execmode = $ARGV[0] || 0; +sub VERBOSE () { $_execmode eq 'verbose' }; +sub DEBUG () { VERBOSE or $_execmode eq 'debug' }; use Data::Dumper; DEBUG and warn "$0: debug mode"; @@ -34,17 +36,14 @@ if (! $bot->authorized) { } my $tweets = {}; -my $tweet; - -$tweet = or_search($bot, $conf->{hashtag}, $stat->{search}); -if ($tweet) { - %$tweets = (%$tweets, %$tweet); -} - -$tweet = mentions_ids($bot, $stat->{mention}); -if ($tweet) { - %$tweets = (%$tweets, %$tweet); -} +%$tweets = ( + %$tweets, + %{ or_search($bot, $conf->{hashtag}, $stat->{search}) } +); +%$tweets = ( + %$tweets, + %{ mentions_ids($bot, $stat->{mention}) } +); foreach my $id (sort keys %$tweets) { # $tweets->{$id}{type} eq 'search' => found by search API @@ -142,17 +141,27 @@ sub or_search { } ); } + VERBOSE and warn Dumper($res); if ($res->{results}) { - VERBOSE and warn Dumper($res); foreach my $tweet (@{$res->{results}}) { my $res = $bot->show_status($tweet->{id}); + VERBOSE and warn Dumper($res); + + my $id = { + date => str2time($res->{created_at}), + screen_name => $res->{user}{screen_name}, + status_id => $res->{id}, + text => $res->{text}, + user_id => $res->{user}{id}, + }; if ($res->{retweeted_status}) { - $ids->{$tweet->{id}}{type} = 'retweet'; + $id->{retweet_of} = $res->{retweeted_status}{id}; + $id->{type} = 'retweet'; } else { - $ids->{$tweet->{id}}{type} = 'search'; + $id->{type} = 'search'; } - VERBOSE and warn Dumper($res); + $ids->{$tweet->{id}} = $id; } } }; @@ -191,7 +200,12 @@ sub mentions_ids { $ids = { map { $_->{id} => { - type => 'mention', + date => str2time($_->{created_at}), + screen_name => $_->{user}{screen_name}, + status_id => $_->{id}, + text => $_->{text}, + type => 'mention', + user_id => $_->{user}{id}, } } @{$res} };