From 846377b586b4e843d9bb9e0d7cfe7059df7255a4 Mon Sep 17 00:00:00 2001 From: ayaka Date: Mon, 17 Jun 2024 22:29:52 +1200 Subject: [PATCH 1/3] implement mascots --- src/main.rs | 19 ++++++++++++++++++- src/settings.rs | 3 ++- src/utils.rs | 16 ++++++++++++++++ static/mascots/redsunlib.png | Bin 0 -> 4866 bytes static/style.css | 14 ++++++++++++++ templates/base.html | 7 +++++++ templates/settings.html | 6 ++++++ 7 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 static/mascots/redsunlib.png diff --git a/src/main.rs b/src/main.rs index e228dcd..fe034af 100644 --- a/src/main.rs +++ b/src/main.rs @@ -26,7 +26,7 @@ use client::{canonical_path, proxy}; use log::info; use once_cell::sync::Lazy; use server::RequestExt; -use utils::{error, redirect, ThemeAssets}; +use utils::{error, redirect, ThemeAssets, MascotAssets}; use crate::client::OAUTH_CLIENT; @@ -111,6 +111,20 @@ async fn style() -> Result, String> { ) } +/// Serve mascot +async fn mascot_image(req: Request) -> Result, String> { + let res = MascotAssets::get(&req.param("name").unwrap()) + .unwrap_or(MascotAssets::get("redsunlib.png").unwrap()); + Ok( + Response::builder() + .status(200) + .header("content-type", "image/png") + .header("Cache-Control", "public, max-age=1209600, s-maxage=86400") + .body(res.data.into()) + .unwrap_or_default(), + ) +} + #[tokio::main] async fn main() { // Load environment variables @@ -265,6 +279,9 @@ async fn main() { app.at("/settings/restore").get(|r| settings::restore(r).boxed()); app.at("/settings/update").get(|r| settings::update(r).boxed()); + // Mascots + app.at("/mascot/:name").get(|r| mascot_image(r).boxed()); + // Subreddit services app .at("/r/:sub") diff --git a/src/settings.rs b/src/settings.rs index 6964675..8c51a41 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -19,8 +19,9 @@ struct SettingsTemplate { // CONSTANTS -const PREFS: [&str; 16] = [ +const PREFS: [&str; 17] = [ "theme", + "mascot", "front_page", "layout", "wide", diff --git a/src/utils.rs b/src/utils.rs index dbaf1de..62f8f45 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -570,7 +570,9 @@ pub struct Params { #[derive(Default)] pub struct Preferences { pub available_themes: Vec, + pub available_mascots: Vec, pub theme: String, + pub mascot: String, pub front_page: String, pub layout: String, pub wide: String, @@ -595,6 +597,11 @@ pub struct Preferences { #[include = "*.css"] pub struct ThemeAssets; +#[derive(RustEmbed)] +#[folder = "static/mascots/"] +#[include = "*.png"] +pub struct MascotAssets; + impl Preferences { // Build preferences from cookies pub fn new(req: &Request) -> Self { @@ -605,9 +612,18 @@ impl Preferences { let chunks: Vec<&str> = file.as_ref().split(".css").collect(); themes.push(chunks[0].to_owned()); } + // Read available mascot names from embedded png files. + // Always make default "none" option available. + let mut mascots = vec!["none".to_string()]; + for file in MascotAssets::iter() { + let chunks: Vec<&str> = file.as_ref().split(".png").collect(); + mascots.push(chunks[0].to_owned()); + } Self { available_themes: themes, + available_mascots: mascots, theme: setting(req, "theme"), + mascot: setting(req, "mascot"), front_page: setting(req, "front_page"), layout: setting(req, "layout"), wide: setting(req, "wide"), diff --git a/static/mascots/redsunlib.png b/static/mascots/redsunlib.png new file mode 100644 index 0000000000000000000000000000000000000000..e3bf580eaff45ea72d8c107df4591015ab36e984 GIT binary patch literal 4866 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 img { + max-width: 20em; +} \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 84dc9c8..b2b2945 100644 --- a/templates/base.html +++ b/templates/base.html @@ -59,6 +59,13 @@ + + {% if prefs.mascot != "none" && prefs.mascot != "" %} + +
+ +
+ {% endif %} {% block body %} diff --git a/templates/settings.html b/templates/settings.html index 496b9b1..aaf8152 100644 --- a/templates/settings.html +++ b/templates/settings.html @@ -19,6 +19,12 @@ {% call utils::options(prefs.theme, prefs.available_themes, "system") %} +
+ + +
Interface From 4c6a71171b2cf072bf59d447e119b386a6f785b5 Mon Sep 17 00:00:00 2001 From: ayaka Date: Mon, 17 Jun 2024 22:29:58 +1200 Subject: [PATCH 2/3] add boymoder --- static/mascots/BoymoderBlahaj.png | Bin 0 -> 9693 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/mascots/BoymoderBlahaj.png diff --git a/static/mascots/BoymoderBlahaj.png b/static/mascots/BoymoderBlahaj.png new file mode 100644 index 0000000000000000000000000000000000000000..1fca469befc62ff46c0b018e2ce35040a3282af2 GIT binary patch literal 9693 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 Qe+QHxOIwSlW~Z Date: Mon, 17 Jun 2024 22:40:58 +1200 Subject: [PATCH 3/3] fix mascot css --- static/style.css | 1 - 1 file changed, 1 deletion(-) diff --git a/static/style.css b/static/style.css index 05108b0..4f99e34 100644 --- a/static/style.css +++ b/static/style.css @@ -1779,7 +1779,6 @@ td, th { position: fixed; right: 1em; bottom: 1em; - left: 85%; pointer-events: none; opacity: 0.5; z-index: 1;