できたよー!

いろいろ影響されて作ったけどなんで元ネタよりもコード長くなってしまうん?
まあいいです。

GUIに載せようと思ってチマチマしてたんですけど、.exeに固めるときに拡張ライブラリが使えないとか致命的なエラーを出したのでもうこれで公開。
そのうちGUIに載せます。

あくまでも「壁紙」検索ツールですが、場合によってはフィルタによって駆除されてしまう「壁紙」もあるかもと思って、フィルタも外しときましたよ^−^

    _  ∩
  ( ゚∀゚)彡 おっぱい!おっぱい!
  (  ⊂彡
   |   | 
   し ⌒J

ああ、そのまま使うと大変なことになるので、MAIN以下の値なんかを変えてください。適度に。
初めて実用的なアプリを作ったけど、初めてがこんなのでいいのかなorz

require 'open-uri'
require "rexml/document"
require 'kconv'
require 'net/http'
require 'uri'
require "cgi"
Net::HTTP.version_1_2

# ファイルを保存
def get_file(download_url, filename, key)
response = fetch(download_url,10)
if response.code == "200"
open("./img/"+key+"/"+filename, "w") do |file|
file.binmode
file.puts response.body
end
end
return filename
end

# HTTPリクエスト
def fetch( uri_str, limit = 10 )
raise ArgumentError, 'http redirect too deep' if limit == 0
response = Net::HTTP.get_response(URI.parse(uri_str))
case response
when Net::HTTPSuccess then response
when Net::HTTPRedirection then fetch(response['Location'], limit - 1)
else
#response.error!
end
return response
end

# yahoo!api関連まとめてここ
def get_img(key, start, res)
# ./img/検索キーワードを作成(ディレクトリ
path = File.dirname(__FILE__)+"/img/"
Dir::mkdir(path+key) unless FileTest.exist?(path+key)

# URL日本語エスケープ
query_key = CGI.escape(key)
start = 50 * (start.to_i-1) + 1
r = start
# yahoo!様ばんざい!
xml = REXML::Document.new(open("http://api.search.yahoo.co.jp/ImageSearchService/V1/imageSearch?appid=alto10000rpm&query=" + query_key + "&results=" + res + "&start=" + start.to_s + "&adult_ok=1"))
xml.elements.each("ResultSet/Result") {|line|
title = key + r.to_s+"."+line.elements["FileFormat"].text
r = r +1
# get_file(line.elements["ClickUrl"].text,Kconv.tosjis(line.elements["Title"].text),key)
get_file(line.elements["ClickUrl"].text, title, key)
}
end

def div_50(res)
start = res / 50
return start
end

def mod_50(res)
res = res % 50
return res
end

# Main
key = 'おっぱい'
res = 1000
start = div_50(res)
res = mod_50(res)
i = 1
if start.to_i > 0
while i <= start
get_img(key.to_s, i.to_s, '50')
i+=1
end
end
start = start + 1
if res.to_i > 0
get_img(key.to_s, start.to_s, res.to_s)
end
Secret

TrackBackURL
→http://ypkpup.blog31.fc2.com/tb.php/56-7d58547d