File tree Expand file tree Collapse file tree 2 files changed +20
-10
lines changed
crates/crates_io_og_image Expand file tree Collapse file tree 2 files changed +20
-10
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ pub use error::OgImageError;
88use crate :: formatting:: { serialize_bytes, serialize_number, serialize_optional_number} ;
99use bytes:: Bytes ;
1010use crates_io_env_vars:: var;
11+ use reqwest:: StatusCode ;
1112use serde:: Serialize ;
1213use std:: collections:: HashMap ;
1314use std:: path:: { Path , PathBuf } ;
@@ -252,19 +253,25 @@ impl OgImageGenerator {
252253 } else {
253254 debug ! ( url = %avatar, "Downloading avatar from URL: {avatar}" ) ;
254255 // Download the avatar from the URL
255- let response = client
256- . get ( * avatar)
257- . send ( )
258- . await
259- . map_err ( |err| OgImageError :: AvatarDownloadError {
256+ let response = client. get ( * avatar) . send ( ) . await . map_err ( |err| {
257+ OgImageError :: AvatarDownloadError {
260258 url : avatar. to_string ( ) ,
261259 source : err,
262- } ) ?
263- . error_for_status ( )
264- . map_err ( |err| OgImageError :: AvatarDownloadError {
260+ }
261+ } ) ?;
262+
263+ let status = response. status ( ) ;
264+ if status == StatusCode :: NOT_FOUND {
265+ warn ! ( url = %avatar, "Avatar URL returned 404 Not Found" ) ;
266+ continue ; // Skip this avatar if not found
267+ }
268+
269+ if let Err ( err) = response. error_for_status_ref ( ) {
270+ return Err ( OgImageError :: AvatarDownloadError {
265271 url : avatar. to_string ( ) ,
266272 source : err,
267- } ) ?;
273+ } ) ;
274+ }
268275
269276 let content_length = response. content_length ( ) ;
270277 debug ! (
Original file line number Diff line number Diff line change 283283 let authors-with-avatars = data . authors . map (author => {
284284 let avatar = none
285285 if author . avatar != none {
286- avatar = " assets/" + avatar_map . at (author . avatar )
286+ let avatar_path = avatar_map . at (author . avatar , default : none )
287+ if avatar_path != none {
288+ avatar = " assets/" + avatar_path
289+ }
287290 }
288291 (name : author . name , avatar : avatar )
289292 })
You can’t perform that action at this time.
0 commit comments