Last active
December 15, 2015 08:29
-
-
Save fukayatsu/5231578 to your computer and use it in GitHub Desktop.
zusaarの特定のイベントの参加者を一括でフォローする
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 ruby | |
# | |
# 特定のイベントに参加している人(の中でtwitterアカウントで登録している人)を一括でフォローする | |
# | |
# usage: | |
# ruby zusaar_event_follow.rb [event_id] | |
# | |
require 'zusaar' | |
require 'twitter' | |
def init_twitter | |
Twitter.configure do |config| | |
config.consumer_key = 'YOUR_CONSUMER_KEY' | |
config.consumer_secret = 'YOUR_CONSUMER_SECRET' | |
config.oauth_token = 'YOUR_OAUTH_TOKEN' | |
config.oauth_token_secret = 'YOUR_OAUTH_TOKEN_SECRET' | |
end | |
end | |
def user_screen_names(event_id) | |
result = Zusaar.search_users(event_id: event_id) | |
users = result.events.first.users | |
users.select{ |user| | |
user.profile_url =~ /twitter\.com/ | |
}.map {|user| | |
matches = user.profile_url.match(/twitter\.com\/([a-zA-Z0-9_]+)/) | |
matches[1] | |
} | |
end | |
event_id = ARGV[0] | |
unless event_id | |
puts "usage:" | |
puts " ruby zusaar_event_follow.rb [event_id]" | |
exit | |
end | |
init_twitter | |
screen_names = user_screen_names(event_id) | |
screen_names.each do |screen_name| | |
begin | |
puts "following #{screen_name} ..." | |
Twitter.follow(screen_name) | |
rescue Twitter::Error::TooManyRequests | |
puts "...rate limit: sleep 15 mins" | |
sleep 15 * 60 | |
retry | |
rescue Twitter::Error::ClientError | |
puts "...rate limit? sleep 15 mins" | |
sleep 15 * 60 | |
retry | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment