Created
December 5, 2009 07:00
-
-
Save hokaccha/249586 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use utf8; | |
use Net::Twitter; | |
use DateTime; | |
use DateTime::Format::HTTP; | |
# 設定 | |
my $term_min = 10; # 対象にする時間の範囲(分) | |
my $username = 'bot_kareshi'; # twitterのユーザー | |
my $password = 'password'; # twitterのパスワード | |
my $keyword = '彼氏ほしい'; # 検索するキーワード | |
# 現在時刻 | |
my $now = DateTime->now(time_zone => 'Asia/Tokyo'); | |
# twitterオブジェクトつくる | |
my $twitter = Net::Twitter->new( | |
traits => [qw/API::REST API::Search API::Lists/], | |
username => $username, | |
password => $password, | |
); | |
# キーワードからつぶやきの一覧を取得 | |
my $tweets = $twitter->search($keyword); | |
my $results = $tweets->{results}; | |
# 取得した一覧をぶんまわす | |
for my $tweet (@$results) { | |
# 指定時間内かどうか | |
my $dt = DateTime::Format::HTTP | |
->parse_datetime($tweet->{created_at}) | |
->set_time_zone('Asia/Tokyo'); | |
next if $now->delta_ms($dt)->in_units('minutes') > $term_min; | |
# RT以降の文字は除く | |
my $text = $tweet->{text}; | |
$text =~ s/RT.*//; | |
next if $text !~ m/$keyword/; | |
# ポスト | |
my $msg = sprintf('@%s 付き合って下さい!', $tweet->{from_user}); | |
$twitter->update($msg); | |
# リストに追加(動かない) | |
#$twitter->add_list_member( | |
# $username, | |
# 'want_kareshi', | |
# { id => $tweet->{from_user_id} } | |
#); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment