Hatena@Cielquis.Net
Home >> Bookmark >> Entry

Declaration

class Entry
    User = Struct.new(:tags, :date, :comment)
    Related = Struct.new(:eid, :uri, :title, :count)
    Response = Struct.new(:eid, :uri, :image_uri, :title, :count, :users, :related)
    
    def initialize(proxy = nil) # Entry.new(str) -> entry
    def reset()                 # entry.reset() -> entry
    def get(uri)                # entry.get(str) -> response
    def each(uri)               # entry.each(str/arr) { |response| block } -> entry
end

Overview

Bookmark::Entry は, はてなブックマークエントリー情報取得 API のラッパクラスです.get() メソッドにおいて URI を指定すると,対応するブックマークエントリーの情報 (Bookmark::Entry::Response) を返します.

each() メソッドは,get() と同様に指定した URI に対応するエントリー情報を取得し, その結果をブロックへと渡します.each() の引数には配列で複数の URI を指定することができます.

尚,Bookmark::Entry は JSON 形式のデータの解析を行うために rubygems で公開されている json ライブラリを使用しています.そのため, Bookmark::Entry を使用する際には rubygems および json ライブラリをインストールする必要があります.

Response,および User, Related 構造体の各メンバ変数は以下の通りです.

Response

User

Related

Example

example_summary.rb

#!/usr/bin/ruby -Ku
require 'hatena'

list = [
    "http://clx.cielquis.net/",
    "http://d.hatena.ne.jp/tt_clown/",
    "http://www.hatena.ne.jp/",
    "http://www.yahoo.co.jp/",
    "http://www.google.co.jp/"
]

entry = Hatena::Bookmark::Entry.new.get(list[0])

puts("ID   : #{entry.eid}")
puts("URI  : #{entry.uri}")
puts("Image: #{entry.image_uri}")
puts("Title: #{entry.title}")
puts("Count: #{entry.count}")

print("Users: ")
entry.users.each { |key, value|
    print("#{key}, ")
}
puts("\n\n")

puts("Related entries")
puts("----------")
index = 1
entry.related.each { |item|
    printf("%3d: %s\n", index, item.title)
    index += 1
}
puts

# each メソッド
puts("using each method.")
puts("----------")
Hatena::Bookmark::Entry.new.each(list) { |entry|
    puts("#{entry.uri} (#{entry.count})")
}
Result

ID   : 9267487
URI  : http://clx.cielquis.net/
Image: http://screenshot.hatena.ne.jp/images/120x90/2/8/6/6/1/
27280789a0d43cff821cec1c06e0eb95682.jpg
Title: CLX C++ Libraries
Count: 20
Users: vtwinautomaton, Wacky, makaya, Ubuntu, cubicdaiya, camelmasa, tsukkee, 
amachang, nsato, haru-s, toge, TAKESAKO, mattn, randynet, kaorun, tt_clown, Watson, 

Related entries
----------
  1: Intel® Threading Building Blocks
  2: Japan.internet.com デベロッパー - Intel TBBの並列コンテナによる安全で
  スケーラブルな並列処理

using each method.
----------
http://clx.cielquis.net/ (20)
http://d.hatena.ne.jp/tt_clown/ (6)
http://www.hatena.ne.jp/ (1938)
http://www.yahoo.co.jp/ (3940)
http://www.google.co.jp/ (2167)