第13回北海道開発オフ成果:Google TrendのHottrendをTumblr投稿する
以前、Google TrendのHottrendを@dabesaにポストさせるScriptを書きました。
・[-*煙猴*-]: 第7回北海道開発オフ成果:Google TrendのHottrendをTwitter投稿する
今回は、Yahoo!デベロッパーネットワークの画像検索APIを使って、そのHottrendの一番最初の検索結果の画像をだべさTumblrにポストさせてみました。
わざわざadult_ok=1にしているので、エロい画像も混ざってしまう可能性はありますが、そのほうが面白いかと思って。べ、べつに下心なんて無いんだからねっ。
以下ソース。
・[-*煙猴*-]: 第7回北海道開発オフ成果:Google TrendのHottrendをTwitter投稿する
今回は、Yahoo!デベロッパーネットワークの画像検索APIを使って、そのHottrendの一番最初の検索結果の画像をだべさTumblrにポストさせてみました。
わざわざadult_ok=1にしているので、エロい画像も混ざってしまう可能性はありますが、そのほうが面白いかと思って。べ、べつに下心なんて無いんだからねっ。
以下ソース。
#! /usr/bin/ruby -Ku require 'open-uri' require 'rexml/document' require 'net/http' require 'rubygems' gem 'twitter4r' require 'twitter' require 'pit' # Twitter4Rバグ回避 require 'cgi' class Hash def to_http_str self.map{|key,value| "#{key}=#{CGI.escape(value.to_s)}"}.join("&") end end # TinyURL化メソッド def tinyurl(link) url = "http://tinyurl.com/api-create.php?url=" + link open(url) do |http| res = http.read return res end end begin #################### HOTをとってくるところ uri="http://www.google.co.jp/trends/hottrends/atom/hourly" xml = open(uri).read eventlist=Array.new REXML::Document.new(xml).root.elements.each("entry") do |elm| eventlist << elm.elements['content'].text.to_s end i = eventlist[0].index("href=") i = i + 6 j = eventlist[0].index("&sa=X") j = j + 4 url = eventlist[0][i..j] turl = tinyurl(url) i = eventlist[0].index("&sa=X") i = i + 7 j = eventlist[0].index("") j = j - 1 keyword = eventlist[0][i..j] #################### Twitterにポストするところ mess = "今日のキーワードは\"" + keyword + "\"だべさ。 => " + turl config = Pit.get("dabesa") cl = Twitter::Client.new(config) cl.status(:post,mess) #################### Tumblrにポストするところ param = Hash.new param['appid'] = "アプリケーションID" param['query'] = keyword param['results'] = 1 param['adult_ok'] = 1 opt = param.map{|i| i.map{|j| CGI.escape j.to_s}.join('=') }.join('&') base = "http://search.yahooapis.jp/ImageSearchService/V1/imageSearch?" uri = base + opt xml = open(uri).read doc = REXML::Document.new(xml) doc.elements.each("/ResultSet/Result") do |elm| caption = elm.elements['Summary'].text source = elm.elements['Url'].text opt = "email=メールアドレス&password=パスワード&type=photo&source=" + source + "&caption" + caption end Net::HTTP.version_1_2 Net::HTTP.start("www.tumblr.com", 80) do |http| responce = http.post("/api/write", opt) end rescue print "RuntimeError: ", $!, "\n"; end