diff --git a/Cargo.lock b/Cargo.lock index 983bab0..20a1524 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1032,7 +1032,7 @@ dependencies = [ [[package]] name = "pasted" -version = "1.2.29" +version = "1.2.30" dependencies = [ "axum", "byte-unit", diff --git a/Cargo.toml b/Cargo.toml index fbfaed9..85f863a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pasted" -version = "1.2.29" +version = "1.2.30" edition = "2021" authors = ["drakeerv "] description = "A pastebin frontend written in Rust" diff --git a/src/client.rs b/src/client.rs index 1298942..7a2a1bc 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,6 +1,7 @@ use scraper::Html; use ureq::{Agent, AgentBuilder}; use std::fmt; +use std::io::Read; #[derive(Clone)] pub struct Client { @@ -62,22 +63,23 @@ impl Client { pub fn get_bytes(&self, url: &str) -> Result, ClientError> { let mut data = Vec::new(); - self.agent + let mut reader = self.agent .get(url) - .call() - .unwrap() - .into_reader() - .read_to_end(&mut data) - .unwrap(); + .call()? + .into_reader(); + + reader.read_to_end(&mut data)?; Ok(data) } pub fn get_html(&self, url: &str) -> Result { - Ok(Html::parse_document(&&self.get_string(url)?)) + self.get_string(url) + .map(|s| Html::parse_document(&s)) } pub fn post_html(&self, url: &str, form: (String, Vec)) -> Result { - Ok(Html::parse_document(&self.post_string(url, form)?)) + self.post_string(url, form) + .map(|s| Html::parse_document(&s)) } } diff --git a/src/routes/imgs.rs b/src/routes/imgs.rs index 86f0a57..510135e 100644 --- a/src/routes/imgs.rs +++ b/src/routes/imgs.rs @@ -1,5 +1,5 @@ use axum::{ - body::Body, extract::{Path, State}, http::StatusCode, response::{IntoResponse, Response}, routing, Router + body::Body, extract::{Path, State}, http::StatusCode, response::Response, routing, Router }; use crate::{state::AppState, constants::URL}; @@ -66,6 +66,8 @@ async fn icon( #[cfg(test)] mod tests { + use axum::response::IntoResponse as _; + use super::*; #[tokio::test]