twitterのlistに一気にユーザーを追加するスクリプト
書いたよ
require 'net/http' require 'kconv' require 'yaml' require 'pp' require 'rexml/document' config_file = ARGV.shift || 'config.yaml' config = YAML.load_file(config_file) screen_names = config['screen_names'] group = config['group'] username = config['username'] password = config['password'] def get_userid(screen_name) body = Net::HTTP.get('twitter.com', "/users/show.xml?screen_name=#{screen_name}"); doc = REXML::Document.new(body) doc.get_elements("/user/id/")[0].get_text.to_s end screen_names.each do |screen_name| id = get_userid(screen_name) req = Net::HTTP::Post.new("/#{username}/#{group}/members.xml") req.set_form_data({:id=>"#{id}"}) req.basic_auth(username, password) Net::HTTP.start('twitter.com') do |http| res = http.request(req) end sleep 5 end
実行ディレクトリと同じ場所に、config.yaml を置くか、引数でファイル名を指定してね。
config.yaml はこんな感じ。
username: username password: password group: zenra screen_names: - sugyan - zenra_bot
ほんとは、pit 使いたかったんだけど、windows だとうまくいかんかったよ…