on open files_
repeat with file_ in files_
saveAppArt(file_)
end repeat
end open
on run
set file_ to choose file of type {"ipa"} with prompt "Choose an iOS app?"
saveAppArt(file_)
end run
on saveAppArt(file_)
tell application "Finder"
set fname to name of file_
set fkind to kind of file_
end tell
set fname to my clean_string(fname)
if fkind ≠ "iOS App" then return ""
set uFile to POSIX path of file_
set uDT to "~/Desktop/iosIcons/" & fname & ".png"
set tcmd to "mkdir ~/Desktop/iosIcons/;touch " & uDT & ";unzip -p '" & uFile & "' iTunesArtwork > " & uDT
do shell script tcmd
end saveAppArt
on clean_string(TheString)
set potentialName to TheString
set legalName to {}
set legalCharacters to {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "_"}
with timeout of 86400 seconds --86400 seconds = 24 hours
repeat with thisCharacter in the characters of potentialName
set thisCharacter to thisCharacter as text
if thisCharacter is in legalCharacters then
set the end of legalName to thisCharacter
if length of legalName is greater than 32 then
return legalName as text
--else
-- set the end of legalName to "_"
end if
end if
end repeat
end timeout
return legalName as text
end clean_string
on nospaces(this_text)
set the comparison_string to " "
set the source_string to "_"
set the new_text to ""
repeat with thisChar in this_text
set x to the offset of thisChar in the comparison_string
if x is not 0 then
set the new_text to (the new_text & character x of the source_string) as string
else
set the new_text to (the new_text & thisChar) as string
end if
end repeat
return the new_text
end nospaces