Skip to content

Instantly share code, notes, and snippets.

@everdaniel
Forked from ttscoff/itunesicon.rb
Created April 28, 2013 19:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save everdaniel/5478099 to your computer and use it in GitHub Desktop.
Save everdaniel/5478099 to your computer and use it in GitHub Desktop.
#!/usr/bin/ruby
# encoding: utf-8
#
# Retrieve an iOS app icon at the highest available resolution
# All arguments are combined to create an iTunes search
# The icon for the first result, if found, is written to a filename based on search terms
#
# example:
# $ itunesicon super monsters ate my condo
%w[net/http open-uri cgi].each do |filename|
require filename
end
def find_icon(terms)
url = URI.parse("http://itunes.apple.com/search?term=#{CGI.escape(terms)}&entity=iPadSoftware")
res = Net::HTTP.get_response(url).body
match = res.match(/"artworkUrl512":"(.*?)",/)
unless match.nil?
return match[1]
else
return false
end
end
terms = ARGV.join(" ")
icon_url = find_icon(terms)
unless icon_url
puts "Failed to get iTunes url"
exit
end
url = URI.parse(icon_url)
target = terms.gsub(/[^a-z0-9]+/i,'-')+"."+icon_url.match(/\.(jpg|png)$/)[1]
begin
open(url) do |f|
File.open(target,'w+') do |file|
file.puts f.read
end
puts "File written to #{target}."
end
rescue
puts "Failed to write icon."
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment