プロジェクト

全般

プロフィール

機能 #786 » media_upload.diff

ふぇのまー 葱野, 2015-10-25 13:04

差分を表示:

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' => {
    (1-1/1)