2010/01/20

自分がFollowされているTwitterリストを一覧出力

元ネタはこれ。
[結城浩の日記]:Twitterのリストで見る自分の属性
僕も自分が含まれているリストを確認したいなぁと思ったので、勉強も兼ねて、Rubyでやってみた。


ソースはこれ。hoge.rb USERNAME PASSWORDみたいにユーザ名とパスワードを引数に付ける。
#! /usr/bin/ruby1.9.1

require "net/http"
require "rubygems"
require "json"

uname = ARGV[0]
upass = ARGV[1]

count = Hash.new(0)
path = '/1/' + uname + '/lists/memberships.json'
ncrsr = -1

while ncrsr != 0 do 
  hash = Hash.new
  list = Hash.new
  data = String.new

  json = Net::HTTP.start('api.twitter.com', 80) do |http|
    req = Net::HTTP::Get.new(path)
    req.basic_auth(uname,upass)
    data = 'cursor=' + ncrsr.to_s
    http.request(req, data).body
  end

  hash = JSON.parse(json)
  hash['lists'].each do |list|
    count[list['slug']] += 1
  end
  ncrsr = hash['next_cursor']
end

count.to_a.sort{|a,b| b[1] <=> a[1]}.each do |slist|
  mess = slist[0] + " " + slist[1].to_s
  puts mess
end

exit
結果は以下。合計127リストです。
conversationlist 9
hokkaido 9
sapporo 4
who-i-met 4
local 3
fav 3
sapporo-it 2
ruby 2
timeline 2
hyakkei 2
follower-2000-8000 1
oneclick 1
happyfamilies 1
like-dde 1
time-line 1
talk 1
asalato 1
users-lc 1
tyep-do09 1
iknow 1
focus 1
chat-room 1
man-on-fire 1
child 1
movapic 1
music-visual 1
listener 1
a-good-person 1
my-timeline 1
iphoneuser 1
favn 1
fun-talk 1
seiyu 1
whomivemet 1
rubyist 1
poken-fans 1
sprk02-attendees 1
gundam-hatena 1
music-addictions 1
hh-virus 1
i-have-met 1
follower-2 1
hokkaido-yearendparty-09 1
temporary-removing 1
my-tl 1
temporary 1
douminbu 1
blogger 1
japan 1
kalifenmischung 1
japan-cloud 1
modelers 1
contents 1
tamakichi 1
mentions 1
follow2 1
my-follow-cuty-icon 1
bloger 1
bookmark 1
music-and-other 1
erodansyaku 1
sambo 1
japanese 1
loveandpeace 1
beer 1
mylist 1
parents 1
mytl 1
fun 1
twitter7879 1
experimental-list-2 1
i-wanna-meet-u 1
friends-s 1
lovealchole 1
oboeta 1
sields 1
twitter-7879 1
jojo-er 1
atta 1
list1 1
rarely-meet 1
prg 1
smokeymonkey 1
music 1
attakigasiteru 1
jojo-club 1
open 1
weblog-site 1
it-web 1
met 1
iphonejp 1
alcohol 1
childcare 1
acquaintance 1
hokkaido-sapporoarea 1
twitter-app-service 1
devdo 1
conversationlistはConversationList.comというサービスが自動的に作成してくれるリストなので除外として。上位はhokkaidoやsapporoなど地域性の高いもの、または所属している団体などですね。1カウントしかされていないものでは、家族や子供に関わるものが結構あります。

ツッコミどころは以下。
erodansyaku 1
beer 1
lovealchole 1
alcohol 1
酒関連多いわエロ男爵扱いされるわ...着実にダメTwitterアカウントとしてのラベルが強まっている気がします。まぁ、面白いから良いんですけど。これからもたまにこっそり確認したいと思うので、皆さんどんどん僕を変なリストに突っ込んじゃってください。