自分がどのTwitterクライアントをどれくらいの割合で使ってるのかを調べるスクリプト書いた
REXML(http://www.germane-software.com/software/rexml)を使用してるので使いたい人はインスコしてね
require 'net/http' require 'rexml/document' require 'cgi' id = "tasuten" count = 20 # 何件のツイートを所得するか。APIのデフォルトは20、最高200 include_rts = "true" # 公式RTも含めるか trim_user = "true" # ユーザ情報を簡略化するか res_xml = Net::HTTP.get("api.twitter.com", "/1/statuses/user_timeline/#{id}.xml?count=#{count}&include_rts=#{include_rts}&trim_user=#{trim_user}", 80) # こっからXMLを解析して統計 doc = REXML::Document.new(res_xml) statistics_hash = Hash::new # 統計用のハッシュ doc.elements.each('statuses/status/source') do |element| # HTMLなテキストをREXMLのドキュメントとして開いてREXMLで処理する if element.text == "web" #webのときだけ書式が他と違う if statistics_hash.key?("web") statistics_hash["web"] += 1 else statistics_hash["web"] = 1 end else # <や>が実体参照になっているので置き換えてから tmp = REXML::Document.new(CGI.unescapeHTML(element.text)) tmp.elements.each('a') do |source_element| cliant_name = source_element.text if statistics_hash.key?(cliant_name) statistics_hash[cliant_name] += 1 else statistics_hash[cliant_name] = 1 end end end end # こっから整形して表示 statistics_hash.sort{|a, b| b[1] <=> a[1]}.each do |key, value| print key, ": ", value, " ", value.prec_f / count.prec_f * 100.0, "%", "\n" end
使用するときは先頭のidやらcountをごにょごにょやってね。ちなみに環境によってはすこし時間がかかるよ!countを200にしたらうちのちょっと古めのマシンじゃ10秒くらいかかったり。ちなみに自分のID(@tasuten)で200件でやってみたらこんな感じだったよ
Twittelator: 90 45.0% Mobile Web: 69 34.5% Saezuri: 28 14.0% web: 10 5.0% Tweet Button: 2 1.0% Twitpic: 1 0.5%
ツイートボタン(http://twitter.com/about/resources/tweetbutton)も"Tweet Buttonから"みたくなるのね