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