From 6299bb5ab35e14e6426526c4e8350e29ea103220 Mon Sep 17 00:00:00 2001 From: BloxerHD018 Date: Sat, 4 Jul 2026 19:15:33 +0100 Subject: [PATCH] URL Encode Mii Data --- Cargo.toml | 3 ++- src/main.rs | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 163e0a7..225d74b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,5 @@ dotenvy = "0.15.7" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" reqwest = { version = "0.13.0", features = ["json"] } -bytes = "1" \ No newline at end of file +bytes = "1" +urlencoding = "2.1.3" diff --git a/src/main.rs b/src/main.rs index 9d2c42e..6be6e01 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ use bytes::Bytes; static MII_RENDERER_URL: &str = "https://mii-renderer.bloxerhd.co.uk"; async fn request_mii_render(client: &State, mii_data: &str, ext: &str) -> Result { + let mii_data = urlencoding::encode(mii_data); let req_str = format!("{MII_RENDERER_URL}/miis/image.{ext}?data={mii_data}"); let response = client.get(req_str) @@ -59,7 +60,7 @@ pub async fn mii_render(pid: i32, path: &str, client: &State) -> Result< if !status.is_success() { let text = res.text().await.unwrap_or_default(); - return Err((Status::new(status.as_u16()), format!("Error Returned from Renderer: {text}"))) + return Err((Status::new(status.as_u16()), format!("Error Returned from Account while fetching Mii Data: {text}"))) } res @@ -70,11 +71,13 @@ pub async fn mii_render(pid: i32, path: &str, client: &State) -> Result< } }; - let data: String = match response.json().await { + let mut data: String = match response.json().await { Ok(data) => data, Err(e) => return Err((Status::new(e.status().unwrap().as_u16()), "Error Parsing Json Response when fetching Mii Data".into())), }; + data.retain(|c| !c.is_whitespace()); + data };