From 1c4db8007d51abb7713de973e3cd4c8de6c16235 Mon Sep 17 00:00:00 2001 From: u <@> Date: Tue, 10 Mar 2026 13:34:00 +0200 Subject: clean --- src/lib.rs | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 7fe2a73..2dbc4a8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ #![allow(mutable_transmutes)] use maud::{html, Markup, PreEscaped, DOCTYPE}; -use regex::Regex; +use regex::{Regex, Match}; use std::mem::{take, transmute}; use worker::*; @@ -23,13 +23,7 @@ async fn text(r: &mut Response) -> Result { #[event(fetch)] async fn fetch(req: Request, env: Env, _ctx: Context) -> Result { - // wont let me use closures - let re = |r: Request, _| Response::redirect(r.url()?.join("shitpit")?); - let hm = |r: Request, _| Response::redirect(r.url()?.join("/")?); Router::new() - .get("/journal", re) - .get("/diary", re) - .get("/index.html", hm) .get_async("/shitpit", |req, ctx| async move { let u = req.url()?; let a = ctx.env.assets("ASSETS")?; @@ -58,8 +52,8 @@ async fn fetch(req: Request, env: Env, _ctx: Context) -> Result { .map_or_else(|| html! { (PreEscaped(l)) "\n" }, |c| { let (m, d, y) = (c.get(1), c.get(2), c.get(3)); - let f = |x: Option| x.unwrap().as_str().parse().unwrap(); - let (y, m, d): (usize, usize, usize) = (f(y) + 2000, f(m), f(d)); + let f = |x: Option| -> usize { x.unwrap().as_str().parse().unwrap() }; + let (y, m, d) = (f(y) + 2000, f(m), f(d)); let s = solar(y, m, d); let (dowc, dowl) = dow(y, m, d); let (y, m, d, t) = (s.year, s.month, s.day, s.term); @@ -104,10 +98,14 @@ async fn fetch(req: Request, env: Env, _ctx: Context) -> Result { } }) }) - .or_else_any_method("/*catchall" /* wtf is this syntax? */ , |_, _| { - Ok(bone("", "404 Not Found", html! { - p style="padding: 1vw" { "what?" } - })?.with_status(404)) + .or_else_any_method("/*catchall" /* wtf is this syntax? */ , |req, _| { + match req.path().as_ref() { + "/index.html" => Response::redirect(req.url()?.join("/")?), + "/journal" | "/diary" => Response::redirect(req.url()?.join("shitpit")?), + _ => Ok(bone("", "404 Not Found", html! { + p style="padding: 1vw" { "what?" } + })?.with_status(404)), + } }) .run(req, env) .await @@ -217,13 +215,11 @@ fn menu(nav: &str) -> Markup { ("shitpit", "/shitpit"), ("about", "/about"), ].iter().peekable(); - @while let Some(&n) = navs.next() { - a class=(if n.0 == nav { "menuon" } else { "menu" }) href=(n.1) { - (n.0) - } - @if navs.peek().is_some() { - " / " + @while let Some(&(n, l)) = navs.next() { + a class=(if n == nav { "menuon" } else { "menu" }) href=(l) { + (n) } + @if navs.peek().is_some() { " / " } } } } -- cgit v1.2.3