ふぁぼられグラフ
ふぁぼられ集計 を改良して、
アイコンを並べたグラフっぽいHTMLに書き出すようにしてみました。
----
require 'rubygems'
require 'hpricot'
require 'net/http'
Net::HTTP.version_1_2
# const
Address = 'favotter.matope.com'
Path1 = '/user.php?user='
Path2 = '&mode=new&page='
TwitterAddress = 'http://twitter.com/'
if ARGV.length == 0 then
printf("usage: ruby favogra.rb account [max_page]\n")
exit
end
if ARGV.length < 2 then
max_page = 20
else
max_page = ARGV[1].to_i
end
counter = {}
counter.default=0
img_src = {}
# parse
path = Path1+ARGV[0]+Path2
i = 1
skip_flag = false
while i<max_page
path = Path1+ARGV[0]+Path2+i.to_s
Net::HTTP.start(Address){|http|
response = http.request_get(path)
body = response.body
doc = Hpricot(body)
doc.search("div[@class~='info']").each{|div|
# skip
if skip_flag == false then
div.search('img').each{|img|
counter[img['title']]+=1
img_src[img['title']]=img['src']
}
else
skip_flag = false
end
}
}
i+=1
skip_flag = true
end
# output
printf("<HTML>\n")
printf("<HEAD>\n")
printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n")
printf("<TITLE>%s fav by</TITLE>\n", ARGV[0])
printf("</HEAD>\n")
printf("<BODY>\n")
counter.to_a.sort{|a, b| b[1]<=>a[1] or b[0]<=>a[0]}.each{|a|
printf("<P>")
i = 0
while i<a[1]
printf("<A HREF=\"%s\"><IMG SRC=\"%s\" ALT=\"%s\"></IMG></A>\n", TwitterAddress+a[0], img_src[a[0]], a[0])
i+=1
end
printf("</P>")
}
printf("</BODY>\n")
printf("</HTML>\n")
----
サンプルとして、 現時点での僕のふぁぼられグラフ を載せておきます。
| 固定リンク
「twitter」カテゴリの記事
- ふぁぼカウンター(2009.06.28)
- あの人にふぁぼられたい!(2009.06.21)
- 台北でもカレーは幸福!(2008.12.13)
- twitterのFavoritesをローカルにcsv形式で書き出すスクリプト-改(2008.06.29)
- 日本の救助隊はこのように行動した (2008.05.19)

コメント