diff options
author | metamuffin <metamuffin@disroot.org> | 2023-02-13 18:00:27 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-02-13 18:00:27 +0100 |
commit | ba4d782687b5eb8d91fd881a7cb9d0adce7dd9f0 (patch) | |
tree | 2e6674a8252993b04756b798ef7742dfbda8ee1a /src/animation.rs | |
parent | 78ac98926ebd97c5166a6c88b5abd9e85883462b (diff) | |
download | metamuffin-website-ba4d782687b5eb8d91fd881a7cb9d0adce7dd9f0.tar metamuffin-website-ba4d782687b5eb8d91fd881a7cb9d0adce7dd9f0.tar.bz2 metamuffin-website-ba4d782687b5eb8d91fd881a7cb9d0adce7dd9f0.tar.zst |
licences are boring, lets show the source code instead.
Diffstat (limited to 'src/animation.rs')
-rw-r--r-- | src/animation.rs | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/animation.rs b/src/animation.rs deleted file mode 100644 index bfb17a4..0000000 --- a/src/animation.rs +++ /dev/null @@ -1,50 +0,0 @@ -use rocket::{ - get, - http::{Cookie, CookieJar, Header}, - response::{self, Responder}, - Request, -}; - -pub struct Reload<T>(f64, pub T); - -#[rocket::async_trait] -impl<'r, T: Responder<'r, 'static>> Responder<'r, 'static> for Reload<T> { - fn respond_to(self, request: &'r Request<'_>) -> response::Result<'static> { - let mut resp = self.1.respond_to(request); - if let Ok(resp) = &mut resp { - resp.set_header(Header::new("refresh", format!("{}", self.0))); - } - resp - } -} - -const TEXT: &'static str = include_str!("../COPYING"); -const END_FRAME: isize = TEXT.len() as isize / 100 + 5; - -#[get("/wubbel")] -pub fn r_wubbel(jar: &CookieJar) -> Reload<String> { - let frame = jar - .get("frame") - .and_then(|c| c.value().parse().ok()) - .unwrap_or(0isize); - jar.add(Cookie::build("frame", format!("{}", (frame + 1) % (END_FRAME + 1))).finish()); - - let text = TEXT - .chars() - .enumerate() - .map(|(i, e)| { - if e == '\n' || frag(i as isize, frame) { - e - } else { - ' ' - } - }) - .collect::<String>(); - - Reload(if frame >= END_FRAME { 60.0 } else { 0.1 }, text) -} - -#[inline] -fn frag(i: isize, frame: isize) -> bool { - i % 5 < (frame - i / 100) -} |