Class: Deliver::DownloadAppClipHeaderImages
- Inherits:
-
Object
- Object
- Deliver::DownloadAppClipHeaderImages
- Defined in:
- deliver/lib/deliver/download_app_clip_header_images.rb
Class Method Summary collapse
- .download(options, folder_path) ⇒ Object
- .download_app_clip_header_image(folder_path, localization) ⇒ Object
- .run(options, path) ⇒ Object
Class Method Details
.download(options, folder_path) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'deliver/lib/deliver/download_app_clip_header_images.rb', line 15 def self.download(, folder_path) app = Deliver.cache[:app] platform = Spaceship::ConnectAPI::Platform.map([:platform]) if [:use_live_version] version = app.get_live_app_store_version(platform: platform, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES + ",appClipDefaultExperience") 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, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES + ",appClipDefaultExperience") UI.user_error!("Could not find an edit version on App Store Connect. Try using '--use_live_version true'") if version.nil? end default_experience = version.app_clip_default_experience UI.user_error!("Cannot download app clip header images if no default experience exists for version '#{version.version_string}'") unless default_experience localizations = Spaceship::ConnectAPI::AppClipDefaultExperienceLocalization.find_all(app_clip_default_experience_id: default_experience.id, includes: 'appClipHeaderImage') threads = [] localizations.each do |localization| threads << Thread.new do download_app_clip_header_image(folder_path, localization) end end threads.each(&:join) end |
.download_app_clip_header_image(folder_path, localization) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'deliver/lib/deliver/download_app_clip_header_images.rb', line 41 def self.download_app_clip_header_image(folder_path, localization) language = localization.locale app_clip_header_image = localization.app_clip_header_image file_name = app_clip_header_image.file_name original_file_extension = File.extname(file_name).strip.downcase[1..-1] url = app_clip_header_image.image_asset_url(type: original_file_extension) return if url.nil? UI.("Downloading existing app clip header image '#{file_name}' for language '#{language}'") containing_folder = File.join(folder_path, language) begin FileUtils.mkdir_p(containing_folder) rescue # if it's already there end path = File.join(containing_folder, file_name) File.binwrite(path, FastlaneCore::Helper.open_uri(url).read) end |
.run(options, path) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'deliver/lib/deliver/download_app_clip_header_images.rb', line 6 def self.run(, path) UI.("Downloading all existing app clip header images...") download(, path) UI.success("Successfully downloaded all existing app clip header images") rescue => ex UI.error(ex) UI.error("Couldn't download already existing app clip header images from App Store Connect.") end |