Skip to content
Snippets Groups Projects
Commit 317b11d1 authored by insert's avatar insert
Browse files

Add image proxy.

parent e2bb5967
Branches
No related merge requests found
......@@ -6,8 +6,12 @@ pub mod util;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| App::new().route("/embed", web::get().to(routes::embed::get)))
.bind(("127.0.0.1", 3000))?
.run()
.await
HttpServer::new(|| {
App::new()
.route("/embed", web::get().to(routes::embed::get))
.route("/proxy", web::get().to(routes::proxy::get))
})
.bind(("127.0.0.1", 3000))?
.run()
.await
}
pub mod embed;
pub mod proxy;
use actix_web::{HttpResponse, Responder, web::Query};
use serde::Deserialize;
use crate::util::request::fetch;
use crate::util::result::Error;
#[derive(Deserialize)]
pub struct Parameters {
url: String,
}
pub async fn get(info: Query<Parameters>) -> Result<impl Responder, Error> {
let url = info.into_inner().url;
let (resp, mime) = fetch(&url).await?;
if let mime::IMAGE = mime.type_() {
let body = resp.bytes().await.map_err(|_| Error::LabelMe)?;
Ok(
HttpResponse::Ok()
.body(body)
)
} else {
Err(Error::LabelMe)
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment