16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'deliver/lib/deliver/download_screenshots.rb', line 16
def self.download(options, folder_path)
legacy_app = options[:app]
app_id = legacy_app.apple_id
app = Spaceship::ConnectAPI::App.get(app_id: app_id)
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
if options[:use_live_version]
version = app.get_live_app_store_version(platform: platform)
UI.user_error!("Could not find a live version on App Store Connect. Try using '--use_live_version false'") if version.nil?
else
version = app.get_edit_app_store_version(platform: platform)
UI.user_error!("Could not find an edit version on App Store Connect. Try using '--use_live_version true'") if version.nil?
end
localizations = version.get_app_store_version_localizations
localizations.each do |localization|
screenshot_sets = localization.get_app_screenshot_sets
screenshot_sets.each do |screenshot_set|
screenshot_set.app_screenshots.each_with_index do |screenshot, index|
file_name = [index, screenshot_set.screenshot_display_type, index].join("_")
original_file_extension = File.extname(screenshot.file_name).strip.downcase[1..-1]
file_name += "." + original_file_extension
url = screenshot.image_asset_url(type: original_file_extension)
next if url.nil?
language = localization.locale
UI.message("Downloading existing screenshot '#{file_name}' for language '#{language}'")
if screenshot_set.apple_tv?
containing_folder = File.join(folder_path, "appleTV", language)
else
containing_folder = File.join(folder_path, language)
end
if screenshot_set.imessage?
containing_folder = File.join(folder_path, "iMessage", language)
end
begin
FileUtils.mkdir_p(containing_folder)
rescue
end
path = File.join(containing_folder, file_name)
File.binwrite(path, open(url).read)
end
end
end
end
|