Guest User

Untitled

a guest
Mar 16th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use strict;
  4. use warnings;
  5. use utf8;
  6.  
  7. use Net::Twitter;
  8. use DateTime;
  9. use DateTime::Format::HTTP;
  10.  
  11. # 設定
  12. my $term_min = 10; # 対象にする時間の範囲(分)
  13. my $username = 'bot_kareshi'; # twitterのユーザー
  14. my $password = 'password'; # twitterのパスワード
  15. my $keyword = '彼氏ほしい'; # 検索するキーワード
  16.  
  17. # 現在時刻
  18. my $now = DateTime->now(time_zone => 'Asia/Tokyo');
  19.  
  20. # twitterオブジェクトつくる
  21. my $twitter = Net::Twitter->new(
  22. traits => [qw/API::REST API::Search API::Lists/],
  23. username => $username,
  24. password => $password,
  25. );
  26.  
  27. # キーワードからつぶやきの一覧を取得
  28. my $tweets = $twitter->search($keyword);
  29. my $results = $tweets->{results};
  30.  
  31. # 取得した一覧をぶんまわす
  32. for my $tweet (@$results) {
  33. # 指定時間内かどうか
  34. my $dt = DateTime::Format::HTTP
  35. ->parse_datetime($tweet->{created_at})
  36. ->set_time_zone('Asia/Tokyo');
  37. next if $now->delta_ms($dt)->in_units('minutes') > $term_min;
  38.  
  39. # RT以降の文字は除く
  40. my $text = $tweet->{text};
  41. $text =~ s/RT.*//;
  42. next if $text !~ m/$keyword/;
  43.  
  44. # ポスト
  45. my $msg = sprintf('@%s 付き合って下さい!', $tweet->{from_user});
  46. $twitter->update($msg);
  47.  
  48. # リストに追加(動かない)
  49. #$twitter->add_list_member(
  50. # $username,
  51. # 'want_kareshi',
  52. # { id => $tweet->{from_user_id} }
  53. #);
  54. }
Add Comment
Please, Sign In to add comment