class Nokaya::AppStore

Inspired by Brett Terpstra

Attributes

appname[RW]

Public Class Methods

new(args, options = {}) click to toggle source
Calls superclass method Nokaya::Apple::new
# File lib/nokaya/appstore.rb, line 10
def initialize args, options = {}
  super(args, options)
  @type = :appstore
  @appname = @workers.sanitize(args.join('_'))
  @urls = [grab_small(args), grab_big(args)].compact
  find_screenshots(args)
  @path = "#{@path}/appstore-#{@appname}-#{@workers.timed}"
  @filenames = name_files()
  remove_instance_variable(:@res)
end

Private Instance Methods

find_icon(terms) click to toggle source
# File lib/nokaya/appstore.rb, line 29
def find_icon terms
  itunes_url = create_url(terms)
  begin
    @res = open(itunes_url).read
  rescue SocketError
    Logs.rec.error 'No connexion'
    @res = {}.to_json
  end
  match = @res.match(/"#{@icon_size}":"(.*?)",/)
  unless match.nil?
    return match[1]
  else
    return nil
  end
end
find_screenshots(terms) click to toggle source
# File lib/nokaya/appstore.rb, line 55
def find_screenshots terms
  res = JSON.parse(@res)
  unless res.empty? || res['results'].empty?
    res['results'][0]['screenshotUrls'].each {|link| @urls << link}
  end
end
grab_big(args) click to toggle source
# File lib/nokaya/appstore.rb, line 50
def grab_big args
  @icon_size = "artworkUrl100"
  find_icon(args)
end
grab_small(args) click to toggle source
# File lib/nokaya/appstore.rb, line 45
def grab_small args
  @icon_size = "artworkUrl60"
  find_icon(args)
end
name_files() click to toggle source
# File lib/nokaya/appstore.rb, line 23
def name_files
  @urls.map.with_index do |url, index|
    "#{@type.to_s}-#{@appname}-#{'%02d' % index}-#{File.basename(url).gsub('ApplicationIcon.', '')}"
  end
end