Class: Rhaiker
- Inherits:
-
Object
- Object
- Rhaiker
- Includes:
- Utils, XML_Parser
- Defined in:
- lib/rhaiker.rb,
lib/rhaiker/utils.rb,
lib/rhaiker/version.rb,
lib/rhaiker/xml_parser.rb,
lib/rhaiker/multipart_builder.rb
Overview
Builder of multipart/form-data.
Defined Under Namespace
Modules: Utils, VERSION, XML_Parser Classes: MultipartBuilder
Constant Summary collapse
- BASE_ADDRESS =
Hatena::Haiku::API BaseURL
'http://h.hatena.ne.jp/api/'
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Hatena::Haiku::API API-Key String.
-
#source ⇒ Object
Hatena::Haiku::API ClientSource String.
-
#user_agent ⇒ Object
HTTP-HEADER 'User-Agent' String.
-
#user_id ⇒ Object
Hatena::UserID String.
Instance Method Summary collapse
-
#favorites_create(status_id) ⇒ Object
- Description
add star for Hatena::Haiku::API.
-
#favorites_destroy(status_id) ⇒ Object
- Description
delete star for Hatena::Haiku::API.
-
#friendship_create(user_id) ⇒ Object
- Description
friend following for Hatena::Haiku::API.
-
#friendship_destroy(user_id) ⇒ Object
- Description
friend unfollowing for Hatena::Haiku::API.
-
#get_album(keyword = nil) ⇒ Object
- Description
get timeline(include picture-url) from Hatena::Haiku::API.
-
#get_followers(user_id = nil) ⇒ Object
- Description
get followers from Hatena::Haiku::API.
-
#get_friend(user_id) ⇒ Object
- Description
get friend from Hatena::Haiku::API.
-
#get_friends(user_id = nil, options = nil) ⇒ Object
- Description
get friends from Hatena::Haiku::API.
-
#get_friends_timeline(user_id = nil, options = nil) ⇒ Object
- Description
get friends_timeline from Hatena::Haiku::API.
-
#get_hot_keywords ⇒ Object
- Description
get hot-keyword from Hatena::Haiku::API.
-
#get_keyword(keyword) ⇒ Object
- Description
get keyword from Hatena::Haiku::API.
-
#get_keyword_list(options = nil) ⇒ Object
- Description
get keyword-list from Hatena::Haiku::API.
-
#get_keyword_timeline(keyword, options = nil) ⇒ Object
- Description
get keyword_timeline from Hatena::Haiku::API.
-
#get_keywords(user_id = nil) ⇒ Object
- Description
get following keywords from Hatena::Haiku::API.
-
#get_public_timeline ⇒ Object
- Description
get public-timeline from Hatena::Haiku::API.
-
#get_status(status_id) ⇒ Object
- Description
get status from Hatena::Haiku::API.
-
#get_user_timeline(user_id = nil, options = nil) ⇒ Object
- Description
get user_timeline from Hatena::Haiku::API.
-
#initialize ⇒ Rhaiker
constructor
:nodoc:.
-
#keyword_create(keyword) ⇒ Object
- Description
following keyword for Hatena::Haiku::API.
-
#keyword_destroy(keyword) ⇒ Object
- Description
unfollowing keyword for Hatena::Haiku::API.
-
#keyword_relation_create(word1, word2) ⇒ Object
- Description
create relation word1 and word2 for Hatena::Haiku::API.
-
#keyword_relation_destroy(word1, word2) ⇒ Object
- Description
delete relation word1 and word2 for Hatena::Haiku::API.
-
#status_destroy(status_id) ⇒ Object
- Description
delete status for Hatena::Haiku::API.
-
#status_update(options) ⇒ Object
- Description
update status for Hatena::Haiku::API.
Methods included from XML_Parser
#parse_keyword, #parse_keywords, #parse_reply, #parse_status, #parse_timeline, #parse_user, #parse_users
Methods included from Utils
#create_request, #create_uri, #http_access, #parse_options
Constructor Details
Instance Attribute Details
#api_key ⇒ Object
Hatena::Haiku::API API-Key String
26 27 28 |
# File 'lib/rhaiker.rb', line 26 def api_key @api_key end |
#source ⇒ Object
Hatena::Haiku::API ClientSource String
28 29 30 |
# File 'lib/rhaiker.rb', line 28 def source @source end |
#user_agent ⇒ Object
HTTP-HEADER 'User-Agent' String
22 23 24 |
# File 'lib/rhaiker.rb', line 22 def user_agent @user_agent end |
#user_id ⇒ Object
Hatena::UserID String
24 25 26 |
# File 'lib/rhaiker.rb', line 24 def user_id @user_id end |
Instance Method Details
#favorites_create(status_id) ⇒ Object
- Description
add star for Hatena::Haiku::API
- Params
status_id (target status_id)
- Return
status (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_status
538 539 540 541 542 543 544 545 546 547 |
# File 'lib/rhaiker.rb', line 538 def favorites_create(status_id) uri = create_uri( BASE_ADDRESS + 'favorites/create/' + status_id.to_s + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_status(document.root) end |
#favorites_destroy(status_id) ⇒ Object
- Description
delete star for Hatena::Haiku::API
- Params
status_id (target status_id)
- Return
status => 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_status
566 567 568 569 570 571 572 573 574 575 |
# File 'lib/rhaiker.rb', line 566 def favorites_destroy(status_id) uri = create_uri( BASE_ADDRESS + 'favorites/destroy/' + status_id.to_s + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_status(document.root) end |
#friendship_create(user_id) ⇒ Object
- Description
friend following for Hatena::Haiku::API
- Params
user_id (target user_id)
- Return
user (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_user
482 483 484 485 486 487 488 489 490 491 |
# File 'lib/rhaiker.rb', line 482 def friendship_create(user_id) uri = create_uri( BASE_ADDRESS + 'friendships/create/' + user_id + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_user(document.root) end |
#friendship_destroy(user_id) ⇒ Object
- Description
friend unfollowing for Hatena::Haiku::API
- Params
user_id (target user_id)
- Return
user (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_user
510 511 512 513 514 515 516 517 518 519 |
# File 'lib/rhaiker.rb', line 510 def friendship_destroy(user_id) uri = create_uri( BASE_ADDRESS + 'friendships/destroy/' + user_id + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_user(document.root) end |
#get_album(keyword = nil) ⇒ Object
- Description
get timeline(include picture-url) from Hatena::Haiku::API
- Params
keyword (target keyword)
- Return
timeline ([=> 12345, ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#parse_options, Utils#http_access, XML_Parser#parse_timeline
173 174 175 176 177 178 179 180 |
# File 'lib/rhaiker.rb', line 173 def get_album(keyword = nil) uri_base = BASE_ADDRESS + 'statuses/album' uri_base += keyword ? "/#{keyword}.xml" : '.xml' uri = create_uri(uri_base) request = create_request(:get, uri) document = http_access(uri, request) return parse_timeline(document) end |
#get_followers(user_id = nil) ⇒ Object
- Description
get followers from Hatena::Haiku::API
- Params
user_id (target user_id)
- Return
users ([=> 'hoge', ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_users
255 256 257 258 259 260 261 262 |
# File 'lib/rhaiker.rb', line 255 def get_followers(user_id = nil) uri_base = BASE_ADDRESS + 'statuses/followers' uri_base += user_id ? "/#{user_id}.xml" : '.xml' uri = create_uri(uri_base) request = create_request(:get, uri, user_id.nil?) document = http_access(uri, request) return parse_users(document) end |
#get_friend(user_id) ⇒ Object
- Description
get friend from Hatena::Haiku::API
- Params
user_id (target user_id)
- Return
user (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_user
281 282 283 284 285 286 287 288 289 290 |
# File 'lib/rhaiker.rb', line 281 def get_friend(user_id) uri = create_uri( BASE_ADDRESS + 'friendships/show/' + user_id + '.xml' ) request = create_request(:get, uri) document = http_access(uri, request) return parse_user(document.root) end |
#get_friends(user_id = nil, options = nil) ⇒ Object
- Description
get friends from Hatena::Haiku::API
- Params
user_id (target user_id) options => => pagenum
- Return
users ([=> 'hoge', ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_users
228 229 230 231 232 233 234 235 236 |
# File 'lib/rhaiker.rb', line 228 def get_friends(user_id = nil, = nil) uri_base = BASE_ADDRESS + 'statuses/friends' uri_base += user_id ? "/#{user_id}.xml" : '.xml' uri_base += () if uri = create_uri(uri_base) request = create_request(:get, uri, user_id.nil?) document = http_access(uri, request) return parse_users(document) end |
#get_friends_timeline(user_id = nil, options = nil) ⇒ Object
- Description
get friends_timeline from Hatena::Haiku::API
- Params
user_id (target user_id) [, options (=> 20, [...])]
- Return
timeline ([=> 12345, ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#parse_options, Utils#http_access, XML_Parser#parse_timeline,
86 87 88 89 90 91 92 93 94 |
# File 'lib/rhaiker.rb', line 86 def get_friends_timeline(user_id = nil, = nil) uri_base = BASE_ADDRESS + 'statuses/friends_timeline' uri_base += user_id ? "/#{user_id}.xml" : '.xml' uri_base += () if uri = create_uri(uri_base) request = create_request(:get, uri, user_id.nil?) document = http_access(uri, request) return parse_timeline(document) end |
#get_hot_keywords ⇒ Object
- Description
get hot-keyword from Hatena::Haiku::API
- Return
keywords ([=> 'hoge', ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_keywords
306 307 308 309 310 311 |
# File 'lib/rhaiker.rb', line 306 def get_hot_keywords uri = create_uri(BASE_ADDRESS + 'keywords/hot.xml') request = create_request(:get, uri) document = http_access(uri, request) return parse_keywords(document) end |
#get_keyword(keyword) ⇒ Object
- Description
get keyword from Hatena::Haiku::API
- Params
keyword (target keyword)
- Return
keyword (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_keyword
383 384 385 386 387 388 389 390 391 392 |
# File 'lib/rhaiker.rb', line 383 def get_keyword(keyword) uri = create_uri( BASE_ADDRESS + 'keywords/show/' + keyword + '.xml' ) request = create_request(:get, uri) document = http_access(uri, request) return parse_keyword(document.root) end |
#get_keyword_list(options = nil) ⇒ Object
- Description
get keyword-list from Hatena::Haiku::API
- Params
options => => pagenum
- Return
keywords ([=> 'hoge', ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#parse_options, Utils#http_access, XML_Parser#parse_keywords
331 332 333 334 335 336 337 338 |
# File 'lib/rhaiker.rb', line 331 def get_keyword_list( = nil) uri_base = BASE_ADDRESS + 'keywords/list.xml' uri_base += () if uri = create_uri(uri_base) request = create_request(:get, uri) document = http_access(uri, request) return parse_keywords(document) end |
#get_keyword_timeline(keyword, options = nil) ⇒ Object
- Description
get keyword_timeline from Hatena::Haiku::API
- Params
keywrod (target keyword) [, options (=> 20, [...])]
- Return
timeline ([=> 12345, ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#parse_options, Utils#http_access, XML_Parser#parse_timeline
144 145 146 147 148 149 150 151 152 153 |
# File 'lib/rhaiker.rb', line 144 def get_keyword_timeline(keyword, = nil) uri_base = BASE_ADDRESS + 'statuses/keyword_timeline/' + keyword + '.xml' uri_base += () if uri = create_uri(uri_base) request = create_request(:get, uri) document = http_access(uri, request) return parse_timeline(document) end |
#get_keywords(user_id = nil) ⇒ Object
- Description
get following keywords from Hatena::Haiku::API
- Params
user_id (target user_id)
- Return
keywords ([=> 'hoge', ..., ...])
- RelatedMethods
Utils#create_uri Utils#create_request Utils#http_access XML_Parser#parse_keywords
357 358 359 360 361 362 363 364 |
# File 'lib/rhaiker.rb', line 357 def get_keywords(user_id = nil) uri_base = BASE_ADDRESS + 'statuses/keywords' uri_base += user_id ? "/#{user_id}.xml" : '.xml' uri = create_uri(uri_base) request = create_request(:get, uri, user_id.nil?) document = http_access(uri, request) return parse_timeline(document) end |
#get_public_timeline ⇒ Object
- Description
get public-timeline from Hatena::Haiku::API
- Return
timeline ([=> 12345, ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_timeline
57 58 59 60 61 62 63 64 65 |
# File 'lib/rhaiker.rb', line 57 def get_public_timeline uri = create_uri( BASE_ADDRESS + 'statuses/public_timeline.xml' ) request = create_request(:get, uri) document = http_access(uri, request) return parse_timeline(document) end |
#get_status(status_id) ⇒ Object
- Description
get status from Hatena::Haiku::API
- Params
status_id (target status_id)
- Return
status (=> 12345, ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_status
199 200 201 202 203 204 205 206 207 208 |
# File 'lib/rhaiker.rb', line 199 def get_status(status_id) uri = create_uri( BASE_ADDRESS + 'statuses/show/' + status_id.to_s + '.xml' ) request = create_request(:get, uri) document = http_access(uri, request) return parse_status(document.root) end |
#get_user_timeline(user_id = nil, options = nil) ⇒ Object
- Description
get user_timeline from Hatena::Haiku::API
- Params
user_id (target user_id) [, options (=> 20, [...])]
- Return
timeline ([=> 12345, ..., ...])
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, Utils#parse_options, XML_Parser#parse_timeline,
115 116 117 118 119 120 121 122 123 |
# File 'lib/rhaiker.rb', line 115 def get_user_timeline(user_id = nil, = nil) uri_base = BASE_ADDRESS + 'statuses/user_timeline' uri_base += user_id ? "/#{user_id}.xml" : '.xml' uri_base += () if uri = create_uri(uri_base) request = create_request(:get, uri, user_id.nil?) document = http_access(uri, request) return parse_timeline(document) end |
#keyword_create(keyword) ⇒ Object
- Description
following keyword for Hatena::Haiku::API
- Params
keyword (target keyword)
- Return
keyword (=> 'hoge', ...
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_keyword
594 595 596 597 598 599 600 601 602 603 |
# File 'lib/rhaiker.rb', line 594 def keyword_create(keyword) uri = create_uri( BASE_ADDRESS + 'keywords/create/' + keyword + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_keyword(document.root) end |
#keyword_destroy(keyword) ⇒ Object
- Description
unfollowing keyword for Hatena::Haiku::API
- Params
keyword (target keyword)
- Return
keyword (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_keyword
622 623 624 625 626 627 628 629 630 631 |
# File 'lib/rhaiker.rb', line 622 def keyword_destroy(keyword) uri = create_uri( BASE_ADDRESS + 'keywords/destroy/' + keyword + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_keyword(document.root) end |
#keyword_relation_create(word1, word2) ⇒ Object
- Description
create relation word1 and word2 for Hatena::Haiku::API
- Params
word1 (target word), word2 (target word)
- Return
keyword (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_keyword
651 652 653 654 655 656 657 658 659 660 661 |
# File 'lib/rhaiker.rb', line 651 def keyword_relation_create(word1, word2) uri = create_uri( BASE_ADDRESS + 'keywords/relation/create.xml' + '?word1=' + word1 + '&word2=' + word2 ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_keyword(document.root) end |
#keyword_relation_destroy(word1, word2) ⇒ Object
- Description
delete relation word1 and word2 for Hatena::Haiku::API
- Params
word1 (target word), word2 (rarget word)
- Return
keyword (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#http_access, XML_Parser#parse_keyword
681 682 683 684 685 686 687 688 689 690 691 |
# File 'lib/rhaiker.rb', line 681 def keyword_relation_destroy(word1, word2) uri = create_uri( BASE_ADDRESS + 'keywords/relation/destroy.xml' + '?word1=' + word1 + '&word2=' + word2 ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_keyword(document.root) end |
#status_destroy(status_id) ⇒ Object
- Description
delete status for Hatena::Haiku::API
- Params
status_id (target status_id)
- Return
status (=> 'hoge', ...)
- RelationMethods
create_uri, create_request, http_access, parse_status
454 455 456 457 458 459 460 461 462 463 |
# File 'lib/rhaiker.rb', line 454 def status_destroy(status_id) uri = create_uri( BASE_ADDRESS + 'statuses/destroy/' + status_id.to_s + '.xml' ) request = create_request(:post, uri, true) document = http_access(uri, request) return parse_status(document.root) end |
#status_update(options) ⇒ Object
- Description
update status for Hatena::Haiku::API
- Params
options (=> 'hoge', ...]
- Return
status (=> 'hoge', ...)
- RelatedMethods
Utils#create_uri, Utils#create_request, Utils#parse_options, Utils#http_access, XML_Parser#parse_status
- Notes
To upload Image File, set File object (or object has 'read' and 'path' methods) to options.
415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 |
# File 'lib/rhaiker.rb', line 415 def status_update() uri_base = BASE_ADDRESS + 'statuses/update.xml' uri_base += () uri_base += '&source=' + @source uri = create_uri(uri_base) request = create_request(:post, uri, true) document = nil if [:file] # Upload Image File builder = MultipartBuilder.new builder.update() builder.store_file(:file, [:file]) body = builder.build request['Content-Length'] = body.length.to_s request['Content-Type'] = "multipart/form-data; boundary=#{builder.boundary}" document = http_access(uri, request, body) else document = http_access(uri, request) end return parse_status(document.root) end |