Skip to content

Instantly share code, notes, and snippets.

@hokaccha
Created December 5, 2009 07:00
Show Gist options
  • Save hokaccha/249586 to your computer and use it in GitHub Desktop.
Save hokaccha/249586 to your computer and use it in GitHub Desktop.
#!/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