diff options
| author | u <@> | 2026-03-10 13:34:00 +0200 |
|---|---|---|
| committer | u <@> | 2026-03-10 13:34:17 +0200 |
| commit | 1c4db8007d51abb7713de973e3cd4c8de6c16235 (patch) | |
| tree | 4add95d0daa7782bde8f688306227d5410c19bf8 | |
| parent | 494c71161d6c2da77d615a442cad798dc950990a (diff) | |
clean
| -rw-r--r-- | src/lib.rs | 34 |
1 files changed, 15 insertions, 19 deletions
@@ -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<String> { #[event(fetch)] async fn fetch(req: Request, env: Env, _ctx: Context) -> Result<Response> { - // 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<Response> { .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<regex::Match>| x.unwrap().as_str().parse().unwrap(); - let (y, m, d): (usize, usize, usize) = (f(y) + 2000, f(m), f(d)); + let f = |x: Option<Match>| -> 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<Response> { } }) }) - .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() { " / " } } } } |
