From dea7f3391094f5a4886f7c8e1ba07ffba64f3c45 Mon Sep 17 00:00:00 2001 From: spikecodes <19519553+spikecodes@users.noreply.github.com> Date: Wed, 20 Jan 2021 17:38:34 -0800 Subject: [PATCH] Add code optimizations --- Cargo.lock | 8 ++++---- Cargo.toml | 18 +++++++++--------- src/main.rs | 37 +++++++++++++++++-------------------- src/settings.rs | 9 +++------ static/robots.txt | 2 -- 5 files changed, 33 insertions(+), 41 deletions(-) delete mode 100644 static/robots.txt diff --git a/Cargo.lock b/Cargo.lock index ec5d2a2..cd22b1e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1485,18 +1485,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3" +checksum = "166b2349061381baf54a58e4b13c89369feb0ef2eaa57198899e2312aac30aab" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd" +checksum = "0ca2a8cb5805ce9e3b95435e3765b7b553cecc762d938d409434338386cb5775" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d79d1d9..7da7c68 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,14 +8,14 @@ authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"] edition = "2018" [dependencies] -base64 = "0.13.0" -actix-web = { version = "3.3.2", features = ["rustls"] } +base64 = "0.13" +actix-web = { version = "3.3", features = ["rustls"] } futures = "0.3" -askama = "0.10.5" -ureq = "2.0.1" -serde = { version = "1.0.118", default_features = false, features = ["derive"] } +askama = "0.10" +ureq = "2.0" +serde = { version = "1.0", default_features = false, features = ["derive"] } serde_json = "1.0" -async-recursion = "0.3.1" -url = "2.2.0" -regex = "1.4.2" -time = "0.2.23" \ No newline at end of file +async-recursion = "0.3" +url = "2.2" +regex = "1.4" +time = "0.2" \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index a0f5f37..c705bbb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,15 +53,16 @@ async fn main() -> std::io::Result<()> { .wrap_fn(move |req, srv| { let secure = req.connection_info().scheme() == "https"; let https_url = format!("https://{}{}", req.connection_info().host(), req.uri().to_string()); - srv.call(req).map(move |res: Result| { + srv.call(req).map(move |res: Result| if force_https && !secure { - let redirect: ServiceResponse = - ServiceResponse::new(res.unwrap().request().clone(), HttpResponse::Found().header("Location", https_url).finish()); - Ok(redirect) + Ok(ServiceResponse::new( + res.unwrap().request().to_owned(), + HttpResponse::Found().header("Location", https_url).finish(), + )) } else { res } - }) + ) }) // Append trailing slash and remove double slashes .wrap(middleware::NormalizePath::default()) @@ -106,23 +107,19 @@ async fn main() -> std::io::Result<()> { .route("/{page}/", web::get().to(subreddit::wiki)), ), ) - // Universal services + // Front page + .route("/", web::get().to(subreddit::page)) + .route("/{sort:best|hot|new|top|rising|controversial}/", web::get().to(subreddit::page)) + // View Reddit wiki .service( - web::scope("") - // Front page - .route("/", web::get().to(subreddit::page)) - .route("/{sort:best|hot|new|top|rising|controversial}/", web::get().to(subreddit::page)) - // View Reddit wiki - .service( - web::scope("/wiki") - .route("/", web::get().to(subreddit::wiki)) - .route("/{page}/", web::get().to(subreddit::wiki)), - ) - // Search all of Reddit - .route("/search/", web::get().to(search::find)) - // Short link for post - .route("/{id:.{5,6}}/", web::get().to(post::item)), + web::scope("/wiki") + .route("/", web::get().to(subreddit::wiki)) + .route("/{page}/", web::get().to(subreddit::wiki)), ) + // Search all of Reddit + .route("/search/", web::get().to(search::find)) + // Short link for post + .route("/{id:.{5,6}}/", web::get().to(post::item)) }) .bind(&address) .unwrap_or_else(|e| panic!("Cannot bind to the address {}: {}", address, e)) diff --git a/src/settings.rs b/src/settings.rs index 2fdb72f..3b0fd72 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -1,6 +1,6 @@ // CRATES use crate::utils::{prefs, Preferences}; -use actix_web::{cookie::Cookie, web::Form, HttpMessage, HttpRequest, HttpResponse}; +use actix_web::{cookie::Cookie, web::Form, HttpRequest, HttpResponse}; use askama::Template; use time::{Duration, OffsetDateTime}; @@ -30,7 +30,7 @@ pub async fn get(req: HttpRequest) -> HttpResponse { } // Set cookies using response "Set-Cookie" header -pub async fn set(req: HttpRequest, form: Form) -> HttpResponse { +pub async fn set(_req: HttpRequest, form: Form) -> HttpResponse { let mut res = HttpResponse::Found(); let names = vec!["theme", "front_page", "layout", "wide", "comment_sort", "hide_nsfw"]; @@ -45,10 +45,7 @@ pub async fn set(req: HttpRequest, form: Form) -> HttpResponse { .expires(OffsetDateTime::now_utc() + Duration::weeks(52)) .finish(), ), - None => match HttpMessage::cookie(&req, name.to_owned()) { - Some(cookie) => res.del_cookie(&cookie), - None => &mut res, - }, + None => res.del_cookie(&Cookie::named(name.to_owned())), }; } diff --git a/static/robots.txt b/static/robots.txt deleted file mode 100644 index 14267e9..0000000 --- a/static/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Allow: / \ No newline at end of file