class MikuTwitter::ApiCallSupport::Request
Attributes
api[R]
force_oauth[RW]
このリクエストにOAuthを使用することを強制する。 OAuthなしでも使えるが、OAuthトークンを用いてリクエストした時に 追加の情報が得られ、それが欲しい場合に使う
twitter[R]
Public Class Methods
defparser(uni, multi = :"
click to toggle source
-
複数の同種のオブジェクトが配列で返ってくることを想定したパーサ
-
オブジェクトが一つだけ返ってくることを想定したパーサ
-
同種のオブジェクトが大量に返ってくるが、cursorを使ってページが分かれているデータ用のパーサ
の3つを定義する。 メソッドの名前は上から順番に、 multi, uni, paged_#{multi} になる。
Args¶ ↑
- uni
-
名前(単数形)
- multi
-
名前(複数形)
# File core/plugin/twitter/mikutwitter/api_call_support.rb, line 38 def self.defparser(uni, multi = :"#{uni}s", defaults = {}) parser = lazy{ MikuTwitter::ApiCallSupport::Request::Parser.method(uni) } defaults.freeze define_method(multi){ |options = {}| type_strict options => Hash json(defaults.merge(options)).next{ |node| Thread.new{ node.map(&parser).freeze } } } define_method(uni){ |options = {}| type_strict options => Hash json(defaults.merge(options)).next{ |node| Thread.new{ parser.call(node) } } } define_method(:"paged_#{multi}"){ |options| type_strict options => Hash json(defaults.merge(options)).next{ |node = {}| Thread.new { node[multi] = node[multi].map(&parser) node } } } end
new(api, twitter)
click to toggle source
# File core/plugin/twitter/mikutwitter/api_call_support.rb, line 58 def initialize(api, twitter) @api, @twitter, @force_oauth = api, twitter, false end
Public Instance Methods
/(nex)
click to toggle source
# File core/plugin/twitter/mikutwitter/api_call_support.rb, line 61 def /(nex) result = Request.new("#{@api}/#{nex}", twitter) result.force_oauth = force_oauth result end
friendship(options = {})
click to toggle source
# File core/plugin/twitter/mikutwitter/api_call_support.rb, line 82 def friendship(options = {}) type_strict options => Hash json(options).next{ |res| relationship = res[:relationship] { following: relationship[:source][:following], # 自分がフォローしているか followed_by: relationship[:source][:followed_by], # 相手にフォローされているか user: Plugin::Twitter::User.new_ifnecessary(idname: relationship[:target][:screen_name], # 相手 id: relationship[:target][:id]) } } end
inspect()
click to toggle source
# File core/plugin/twitter/mikutwitter/api_call_support.rb, line 96 def inspect "#<#{MikuTwitter::ApiCallSupport::Request}: #{@api}>" end
json(options)
click to toggle source
search(options = {})
click to toggle source
# File core/plugin/twitter/mikutwitter/api_call_support.rb, line 91 def search(options = {}) type_strict options => Hash json({tweet_mode: 'extended'.freeze}.merge(options)).next{ |res| Thread.new { Parser.messages res[:statuses] } } end