Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

Twitter API を使って

Twitter API Viewerを見ると,工夫次第で何か面白そうなものが作れそうな気がします。
まずは練習ということで,自分のfriendsとfollowersのどちらにも属している方を求めるものを作ってみました。

friends_and_followers.rb

#!/usr/bin/env ruby
require 'net/http'
require 'rexml/document'

Screen_name = 'maehrm'

$friends = []
$followers = []

def get_screen_name(kind, cursor_num = -1, &block)
  xmldoc = nil
  Net::HTTP.version_1_2
  Net::HTTP.start("twitter.com", 80) {|http|
    response = http.get("/statuses/#{kind}/#{Screen_name}.xml?cursor=#{cursor_num}")
    xmldoc = REXML::Document.new(response.body)
  }
  xmldoc.elements.each('/users_list/users/user/screen_name') do |ele|
    yield ele.text
  end
  next_cursor_num = xmldoc.elements['/users_list/next_cursor'].text.to_i
  get_screen_name(kind, next_cursor_num, &block) if (next_cursor_num != 0)
end

get_screen_name("friends") { |ele| $friends << ele}
get_screen_name("followers") { |ele| $followers << ele}

puts ($friends & $followers)

実行

$ ruby friends_and_followers.rb | wc -l
54

2/11現在で,54名の方がfriendsでありfollowersな方でした。また,

$ ruby friends_and_followers.rb | grep Linux
Linux

とすると,@Linuxさんは,friendsでありfollowersな方だと分かります。