X-Git-Url: http://lab.mitty.jp/git/?a=blobdiff_plain;f=twitter%2Ftwitterbot.pl;h=249c1bc58e0b85ad5e0ef0add7166293d828a626;hb=d732ebcd10157829c6bf19307369cb1b69b6665c;hp=d93e023a697590ceaff8f88c34b271a20d1a99ea;hpb=7e20eed62f390a5e39bcd48accd0e4023c0f8328;p=lab.git diff --git a/twitter/twitterbot.pl b/twitter/twitterbot.pl index d93e023..249c1bc 100755 --- a/twitter/twitterbot.pl +++ b/twitter/twitterbot.pl @@ -33,31 +33,32 @@ if (! $bot->authorized) { die "$0: this client is not yet authorized.\n"; } -my %tweets; +my $tweets = {}; my $tweet; $tweet = or_search($bot, $conf->{hashtag}, $stat->{search}); if ($tweet) { - %tweets = (%tweets, %$tweet); + %$tweets = (%$tweets, %$tweet); } $tweet = mentions_ids($bot, $stat->{mention}); if ($tweet) { - %tweets = (%tweets, %$tweet); + %$tweets = (%$tweets, %$tweet); } -foreach my $id (sort keys %tweets) { - if ($tweets{$id} eq 'retweet') { +foreach my $id (sort keys %$tweets) { + # $tweets->{$id}{type} eq 'search' => found by search API + # eq 'mention' => found by mention API + if ($tweets->{$id}{type} eq 'retweet') { next; } DEBUG or sleep($conf->{sleep}); - # retweet found tweet - # $tweets->{$id} eq 'search' => found by search API - # eq 'mention' => found by mention API + + # do retweet found tweets my $res; eval { DEBUG or $res = $bot->retweet($id); - DEBUG and warn "retweet($id) => ", Dumper($tweets{$id}); + DEBUG and warn "retweet($id) => ", Dumper($tweets->{$id}); }; if ($@) { evalrescue($@); @@ -65,10 +66,10 @@ foreach my $id (sort keys %tweets) { next; } - $stat->{$tweets{$id}} = $id; + $stat->{$tweets->{$id}{type}} = $id; } -if (%tweets) { +if ($tweets) { # save last status to yaml file DEBUG or YAML::Tiny::DumpFile("$Bin/status.yml", $stat); DEBUG and warn "status.yml => ", Dumper($stat); @@ -146,10 +147,10 @@ sub or_search { foreach my $tweet (@{$res->{results}}) { my $res = $bot->show_status($tweet->{id}); if ($res->{retweeted_status}) { - $ids->{$tweet->{id}} = 'retweet'; + $ids->{$tweet->{id}}{type} = 'retweet'; } else { - $ids->{$tweet->{id}} = 'search'; + $ids->{$tweet->{id}}{type} = 'search'; } VERBOSE and warn Dumper($res); } @@ -188,7 +189,11 @@ sub mentions_ids { my $ids = {}; if ($res && @{$res}) { $ids = { - map { $_->{id} => 'mention' } @{$res} + map { + $_->{id} => { + type => 'mention', + } + } @{$res} }; }