機能 #786 » media_upload.diff
core/lib/mikutwitter/api_shortcuts.rb | ||
---|---|---|
text = message[:message]
|
||
replyto = message[:replyto]
|
||
receiver = message[:receiver]
|
||
iolist = message[:mediaiolist]
|
||
data = {:status => text }
|
||
data[:in_reply_to_user_id] = User.generate(receiver)[:id].to_s if receiver
|
||
data[:in_reply_to_status_id] = Message.generate(replyto)[:id].to_s if replyto
|
||
data[:media_ids] = iolist.collect{ |io| upload_media(io) }.join(",") if iolist
|
||
(self/'statuses/update').message(data) end
|
||
alias post update
|
||
... | ... | |
else
|
||
users end } } end
|
||
# upload.twitter.comに画像等をアップロードし、
|
||
# アップロードしたファイルのmedia_idを返す。
|
||
# ==== Args
|
||
# [io] アップロードする画像ファイルのIO
|
||
# ==== Return
|
||
# media_id(Integer) or nil
|
||
def upload_media(io)
|
||
JSON.parse(self.query!('media/upload',
|
||
{ host: 'upload.twitter.com/1.1',
|
||
media: Base64.encode64(io.read) }).body)['media_id'] end
|
||
end
|
||
class MikuTwitter; include MikuTwitter::APIShortcuts end
|
core/lib/mikutwitter/query.rb | ||
---|---|---|
raise MikuTwitter::RateLimitError.new("Rate limit #{resource.endpoint}", nil) end
|
||
method = get_api_property(api, options, method_of_api) || :get
|
||
url = if options[:host]
|
||
"http://#{options[:host]}/#{api}.json"
|
||
"https://#{options[:host]}/#{api}.json"
|
||
else
|
||
"#{@base_path}/#{api}.json" end
|
||
res = _query!(api, options, method, url)
|
||
... | ... | |
'destroy' => aster_post },
|
||
'geo' => {
|
||
'place' => :post },
|
||
'media' => {
|
||
'upload' => :post },
|
||
'blocks' => create_destroy_post,
|
||
'report_spam' => :post,
|
||
'oauth' => {
|