Skip to content

Commit

Permalink
scripts: Handle redirects in image URLs
Browse files Browse the repository at this point in the history
  • Loading branch information
garrett authored and jelly committed Aug 10, 2023
1 parent 69ab198 commit 76af5e1
Showing 1 changed file with 22 additions and 12 deletions.
34 changes: 22 additions & 12 deletions _scripts/generate-release-notes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -178,19 +178,29 @@ def build_frontmatter
}.to_yaml.gsub(/^:/, '')
end

# Download the image from GitHub and save locally
def download_image(url, basename)
extension = url.split('.').last
filename = "#{basename}.#{extension}"

# Download and save file
image = Net::HTTP.get(URI(url))
File.write("images/#{filename}", image)

@files_images.push("images/#{filename}")
# Download the image from a GitHub and save locally
def download_image(url, basename, limit = 3)
raise ArgumentError, 'too many HTTP redirects' if limit == 0

uri = URI(url)
response = Net::HTTP.get_response(uri)

case response
when Net::HTTPRedirection
new_url = response['location']
download_image(new_url, basename, limit - 1)
when Net::HTTPSuccess
extension = File.extname(uri.path)
local_file = "#{basename}#{extension}"
File.write("images/#{local_file}", response.body)
@files_images << "images/#{local_file}"

# Return the local file on success
local_file
end

# Return filename (with extension)
filename
rescue StandardError => e
warn "Error downloading the image: #{e.message}"
end

def process_images(notes)
Expand Down

0 comments on commit 76af5e1

Please sign in to comment.