Declaration
class Count
def initialize() # Count.new() -> count
def entry(uri) # count.entry(str/arr) -> num/hash
def site(uri) # count.site(str) -> num
def asin(code) # count.asin(str/arr) -> num/hash
end
def count(uri) # count(str/arr) { |str, num| block } -> num/hash
def site_count(uri) # site_count(str) { |str, num| block } -> num
def asin_count(code) # asin_count(str/arr) { |str, num| block } -> num/hash
Overview
Bookmark::Count クラスは, はてなブックマーク件数取得API をラップしたクラスです.URL または ASIN コードを指定すると対応するエントリーの被ブックマーク数を返します.entry(),および asin() メソッドには配列で複数の URI/ASIN コードを指定することができます. 配列で複数の URI/ASIN コードが指定された場合,これらのメソッドは {URI/ASIN => 被ブックマーク数} のハッシュで結果を返します.ただし, 配列で指定した場合,結果の被ブックマーク数は数値ではなく数字文字列で返されます.
Bookmark::count(), Bookmark::site_count(), Bookmark::asin_count() は Bookmark::Count クラスをラップした関数です.これらの関数は, ブロックを指定することもできます.
Example
#!/usr/bin/ruby -Ku
require 'hatena'
list = [
"http://d.hatena.ne.jp/tt_clown/",
"http://clx.cielquis.net/",
"http://www.hatena.ne.jp/",
"http://www.yahoo.co.jp/",
"http://www.google.co.jp/"
]
session = Hatena::Bookmark::Count.new
list.each { |uri|
count = session.entry(uri)
site = session.site(uri)
puts("#{uri} has #{count} bookmarks.")
puts("#{uri} has #{site} bookmarks (total).")
puts
}
# Hatena::Bookmark::count(), Hatena::Bookmark::site_count(),
# Hatena::Bookmark::asin_count() の 3 つの関数は,引数が
# 文字列/配列に関わらずブロックも指定できる.
# 尚,Hatena::Bookmark::Count クラスのメソッドは,ブロック指定不可.
puts("Test with block.")
puts("----------")
Hatena::Bookmark::count(list) { |uri, count|
printf("%4d %s\n", count, uri)
}
Result Test count() and site_count(). ---------- http://d.hatena.ne.jp/tt_clown/ has 6 bookmarks. http://d.hatena.ne.jp/tt_clown/ has 698 bookmarks (total). http://clx.cielquis.net/ has 20 bookmarks. http://clx.cielquis.net/ has 23 bookmarks (total). http://www.hatena.ne.jp/ has 1938 bookmarks. http://www.hatena.ne.jp/ has 55311 bookmarks (total). http://www.yahoo.co.jp/ has 3940 bookmarks. http://www.yahoo.co.jp/ has 4085 bookmarks (total). http://www.google.co.jp/ has 2167 bookmarks. http://www.google.co.jp/ has 36548 bookmarks (total). Test with block. ---------- 20 http://clx.cielquis.net/ 6 http://d.hatena.ne.jp/tt_clown/ 1938 http://www.hatena.ne.jp/ 3940 http://www.yahoo.co.jp/ 2167 http://www.google.co.jp/
#!/usr/bin/ruby -Ku
require 'hatena'
list = ["4883808696", "B001MTQY5I", "4478006040", "4844326430", "4797350938"]
Hatena::Bookmark::asin_count(list) { |code, count|
printf("%4d ASIN:%s\n", count, code)
}
Result 6 ASIN:4478006040 11 ASIN:4797350938 16 ASIN:B001MTQY5I 14 ASIN:4883808696 12 ASIN:4844326430