From ac5ef89dff367f05659d2c8f3ab4b0ca0605e499 Mon Sep 17 00:00:00 2001 From: spikecodes <19519553+spikecodes@users.noreply.github.com> Date: Sun, 7 Feb 2021 17:33:54 -0800 Subject: [PATCH] Fix gallery unwrapping --- src/main.rs | 4 +++- src/utils.rs | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7aa0333..15b6d2e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,7 +31,9 @@ async fn pwa_logo() -> HttpResponse { // Required for iOS App Icons async fn iphone_logo() -> HttpResponse { - HttpResponse::Ok().content_type("image/png").body(include_bytes!("../static/touch-icon-iphone.png").as_ref()) + HttpResponse::Ok() + .content_type("image/png") + .body(include_bytes!("../static/touch-icon-iphone.png").as_ref()) } async fn robots() -> HttpResponse { diff --git a/src/utils.rs b/src/utils.rs index 44e042a..d225972 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -52,7 +52,7 @@ pub struct GalleryMedia { pub width: i64, pub height: i64, pub caption: String, - pub outbound_url: String, + pub outbound_url: String, } // Post containing content, metadata and media @@ -227,18 +227,18 @@ pub async fn media(data: &Value) -> (String, Media, Vec) { post_type = "self"; data["permalink"].as_str().unwrap_or_default().to_string() } else if data["is_gallery"].as_bool().unwrap_or_default() { - post_type = "gallery"; + post_type = "gallery"; gallery = data["gallery_data"]["items"] .as_array() - .unwrap() + .unwrap_or(&Vec::::new()) .iter() .map(|item| { let media_id = item["media_id"].as_str().unwrap_or_default(); - let image = data["media_metadata"][media_id].as_object().unwrap(); + let image = &data["media_metadata"][media_id].as_object().map(ToOwned::to_owned).unwrap_or_default()["s"]; GalleryMedia { - url: format_url(image["s"]["u"].as_str().unwrap_or_default()), - width: image["s"]["x"].as_i64().unwrap_or_default(), - height: image["s"]["y"].as_i64().unwrap_or_default(), + url: format_url(image["u"].as_str().unwrap_or_default()), + width: image["x"].as_i64().unwrap_or_default(), + height: image["y"].as_i64().unwrap_or_default(), caption: item["caption"].as_str().unwrap_or_default().to_string(), outbound_url: item["outbound_url"].as_str().unwrap_or_default().to_string(), }