From 52a65fcad1e05d0f20b9441d5608f5e6c3972441 Mon Sep 17 00:00:00 2001 From: k Date: Wed, 18 Sep 2024 00:14:53 +0200 Subject: [PATCH] general: update --- CHANGELOG.md | 2 +- README.md | 2 +- server/src/api/handlers/dataset.rs | 10 +- server/src/api/handlers/response.rs | 6 +- server/src/header_map.rs | 60 +- server/src/website/handlers/file.rs | 15 +- .../pwa/2024-09-16_10:57:54/favicon-196.png | Bin 3362 -> 0 bytes .../apple-icon-180.png | Bin .../apple-splash-1125-2436.jpg | Bin .../apple-splash-1136-640.jpg | Bin .../apple-splash-1170-2532.jpg | Bin .../apple-splash-1179-2556.jpg | Bin .../apple-splash-1242-2208.jpg | Bin .../apple-splash-1242-2688.jpg | Bin .../apple-splash-1284-2778.jpg | Bin .../apple-splash-1290-2796.jpg | Bin .../apple-splash-1334-750.jpg | Bin .../apple-splash-1488-2266.jpg | Bin .../apple-splash-1536-2048.jpg | Bin .../apple-splash-1620-2160.jpg | Bin .../apple-splash-1640-2360.jpg | Bin .../apple-splash-1668-2224.jpg | Bin .../apple-splash-1668-2388.jpg | Bin .../apple-splash-1792-828.jpg | Bin .../apple-splash-2048-1536.jpg | Bin .../apple-splash-2048-2732.jpg | Bin .../apple-splash-2160-1620.jpg | Bin .../apple-splash-2208-1242.jpg | Bin .../apple-splash-2224-1668.jpg | Bin .../apple-splash-2266-1488.jpg | Bin .../apple-splash-2360-1640.jpg | Bin .../apple-splash-2388-1668.jpg | Bin .../apple-splash-2436-1125.jpg | Bin .../apple-splash-2532-1170.jpg | Bin .../apple-splash-2556-1179.jpg | Bin .../apple-splash-2688-1242.jpg | Bin .../apple-splash-2732-2048.jpg | Bin .../apple-splash-2778-1284.jpg | Bin .../apple-splash-2796-1290.jpg | Bin .../apple-splash-640-1136.jpg | Bin .../apple-splash-750-1334.jpg | Bin .../apple-splash-828-1792.jpg | Bin .../pwa/2024-09-17_09-06-03/favicon-196.png | Bin 0 -> 6878 bytes .../index.html | 72 +- .../manifest-icon-192.maskable.png | Bin .../manifest-icon-512.maskable.png | Bin website/generate-icons.sh | 21 +- website/index.html | 82 +- website/manifest.webmanifest | 16 +- website/script.js | 1118 +++++++++-------- website/types/paths.d.ts | 6 +- 51 files changed, 753 insertions(+), 657 deletions(-) delete mode 100644 website/assets/pwa/2024-09-16_10:57:54/favicon-196.png rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-icon-180.png (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1125-2436.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1136-640.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1170-2532.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1179-2556.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1242-2208.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1242-2688.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1284-2778.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1290-2796.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1334-750.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1488-2266.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1536-2048.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1620-2160.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1640-2360.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1668-2224.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1668-2388.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-1792-828.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2048-1536.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2048-2732.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2160-1620.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2208-1242.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2224-1668.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2266-1488.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2360-1640.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2388-1668.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2436-1125.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2532-1170.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2556-1179.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2688-1242.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2732-2048.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2778-1284.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-2796-1290.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-640-1136.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-750-1334.jpg (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/apple-splash-828-1792.jpg (100%) create mode 100644 website/assets/pwa/2024-09-17_09-06-03/favicon-196.png rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/index.html (71%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/manifest-icon-192.maskable.png (100%) rename website/assets/pwa/{2024-09-16_10:57:54 => 2024-09-17_09-06-03}/manifest-icon-512.maskable.png (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ce6bd3cc..ca54fca2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ ### Website - Complete redesign of the website -- Ditched the whole `node` ecosystem in favor for pure `HTML`/`CSS`/`Javacript` +- Rewrote the whole application and removed `node`/`npm`/`pnpm` dependencies in favor for pure `HTML`/`CSS`/`Javascript` - Website is now served by the server - Added Trading View attribution link to the settings frame and file in the lightweight charts folder - Many other changes diff --git a/README.md b/README.md index cb5939e2a..4794d1ed0 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,7 @@ It uses 2 servers, a full and a light one without the parser running but with st Cloudflare is used for their tunnel + CDN services. -> Though it's recommended to change to default **Browser Cache TTL** configuration from `4 Hours` to `Respect Existing Headers` (in `Websites / YOUR_DOMAIN / Caching / Configuration / Browser Cache TTL`) +Though it's recommended to change to default **Browser Cache TTL** configuration from `4 Hours` to `Respect Existing Headers` (in `Websites / YOUR_DOMAIN / Caching / Configuration / Browser Cache TTL`) and activate `Always use https`.

diff --git a/server/src/api/handlers/dataset.rs b/server/src/api/handlers/dataset.rs index d6f0c9d59..0c0b382f7 100644 --- a/server/src/api/handlers/dataset.rs +++ b/server/src/api/handlers/dataset.rs @@ -49,10 +49,6 @@ fn _dataset_handler( query: Query, AppState { routes }: AppState, ) -> color_eyre::Result { - if path.contains("favicon") { - return Err(eyre!("Don't support favicon")); - } - log(&format!( "{}{}", path, @@ -98,11 +94,13 @@ fn _dataset_handler( match kind { Kind::Date => { let datasets = DateMap::::_read_dir(&route.file_path, &route.serialization); + process_datasets(headers, kind, &mut chunk, &mut route, query, datasets)?; } Kind::Height => { let datasets = HeightMap::::_read_dir(&route.file_path, &route.serialization); + process_datasets(headers, kind, &mut chunk, &mut route, query, datasets)?; } _ => panic!(), @@ -159,7 +157,9 @@ where return Err(eyre!("Couldn't find chunk")); } - route.file_path = path.unwrap().to_str().unwrap().to_string(); + let path = path.unwrap(); + + route.file_path = path.to_str().unwrap().to_string(); let offset = match kind { Kind::Date => 1, diff --git a/server/src/api/handlers/response.rs b/server/src/api/handlers/response.rs index f279fb6d9..108d79e30 100644 --- a/server/src/api/handlers/response.rs +++ b/server/src/api/handlers/response.rs @@ -54,14 +54,14 @@ fn value_to_response(value: T) -> Response where T: Serialize, { - generic_to_reponse(value, None, 5) + generic_to_reponse(value, None, 1) } fn dataset_to_response(dataset: T, chunk: Chunk) -> Response where T: Serialize, { - generic_to_reponse(dataset, Some(chunk), 60) + generic_to_reponse(dataset, Some(chunk), 5) } pub fn generic_to_reponse(generic: T, chunk: Option, cache_time: u64) -> Response @@ -71,7 +71,7 @@ where let mut response = { if let Some(chunk) = chunk { Json(WrappedDataset { - source: "https://satonomics.xyz", + source: "https://kibo.money", chunk, dataset: generic, }) diff --git a/server/src/header_map.rs b/server/src/header_map.rs index dbfc09ddd..f73dd18bb 100644 --- a/server/src/header_map.rs +++ b/server/src/header_map.rs @@ -1,11 +1,19 @@ use std::path::Path; -use axum::http::{header, HeaderMap}; -use chrono::{DateTime, Utc}; +use axum::{ + body::Body, + http::{header, HeaderMap, Response}, + response::IntoResponse, +}; +use chrono::{DateTime, Timelike, Utc}; use parser::log; -use reqwest::header::HOST; +use reqwest::{ + header::{HOST, IF_MODIFIED_SINCE}, + StatusCode, +}; const STALE_IF_ERROR: u64 = 30_000_000; // 1 Year ish +const MODIFIED_SINCE_FORMAT: &str = "%a, %d %b %Y %H:%M:%S GMT"; pub trait HeaderMapUtils { fn get_scheme(&self) -> &str; @@ -16,6 +24,12 @@ pub trait HeaderMapUtils { fn insert_cors(&mut self); + fn get_if_modified_since(&self) -> Option>; + fn check_if_modified_since( + &self, + path: &Path, + ) -> color_eyre::Result<(DateTime, Option>)>; + fn insert_cache_control_immutable(&mut self); fn insert_cache_control_revalidate(&mut self, max_age: u64, stale_while_revalidate: u64); fn insert_last_modified(&mut self, date: DateTime); @@ -83,11 +97,49 @@ impl HeaderMapUtils for HeaderMap { } fn insert_last_modified(&mut self, date: DateTime) { - let formatted = date.format("%a, %d %b %Y %H:%M:%S GMT").to_string(); + let formatted = date.format(MODIFIED_SINCE_FORMAT).to_string(); self.insert(header::LAST_MODIFIED, formatted.parse().unwrap()); } + fn check_if_modified_since( + &self, + path: &Path, + ) -> color_eyre::Result<(DateTime, Option>)> { + let time = path.metadata()?.modified()?; + let date: DateTime = time.into(); + let date = date.with_nanosecond(0).unwrap(); + let mut response_opt = None; + + if let Some(if_modified_since) = self.get_if_modified_since() { + if if_modified_since == date { + let mut response = (StatusCode::NOT_MODIFIED, "").into_response(); + let headers = response.headers_mut(); + headers.insert_cors(); + response_opt.replace(response); + } + } + + Ok((date, response_opt)) + } + + fn get_if_modified_since(&self) -> Option> { + if let Some(modified_since) = self.get(IF_MODIFIED_SINCE) { + if let Ok(modified_since) = modified_since.to_str() { + let date = DateTime::parse_from_str( + &format!("{modified_since} +00:00"), + &format!("{MODIFIED_SINCE_FORMAT} %z"), + ); + + if let Ok(x) = date { + return Some(x.to_utc()); + } + } + } + + None + } + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types fn insert_content_type(&mut self, path: &Path) { match path.extension().unwrap().to_str().unwrap() { diff --git a/server/src/website/handlers/file.rs b/server/src/website/handlers/file.rs index 5ca53dce5..c04617f3b 100644 --- a/server/src/website/handlers/file.rs +++ b/server/src/website/handlers/file.rs @@ -9,7 +9,6 @@ use axum::{ http::HeaderMap, response::{IntoResponse, Response}, }; -use chrono::{DateTime, Utc}; use parser::log; use reqwest::StatusCode; @@ -47,10 +46,13 @@ pub async fn index_handler(headers: HeaderMap) -> Response { } fn path_to_response(headers: HeaderMap, path: &Path) -> Response { - let mut response; + let (date, response) = headers.check_if_modified_since(path).unwrap(); - let time = path.metadata().unwrap().modified().unwrap(); - let date: DateTime = time.into(); + if let Some(response) = response { + return response; + } + + let mut response; let is_localhost = headers.check_if_host_is_localhost(); @@ -76,7 +78,10 @@ fn path_to_response(headers: HeaderMap, path: &Path) -> Response { if !is_localhost { let serialized_path = path.to_str().unwrap(); - if serialized_path.contains("fonts/") || serialized_path.contains("assets/pwa/") || serialized_path.contains("packages/") { + if serialized_path.contains("fonts/") + || serialized_path.contains("assets/pwa/") + || serialized_path.contains("packages/") + { headers.insert_cache_control_immutable(); } else { headers.insert_cache_control_revalidate(10, 50); diff --git a/website/assets/pwa/2024-09-16_10:57:54/favicon-196.png b/website/assets/pwa/2024-09-16_10:57:54/favicon-196.png deleted file mode 100644 index 3c787c8bf99d879f55c03cf137fc00c581ced10e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3362 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 diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-icon-180.png b/website/assets/pwa/2024-09-17_09-06-03/apple-icon-180.png similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-icon-180.png rename to website/assets/pwa/2024-09-17_09-06-03/apple-icon-180.png diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1125-2436.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1125-2436.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1125-2436.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1125-2436.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1136-640.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1136-640.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1136-640.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1136-640.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1170-2532.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1170-2532.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1170-2532.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1170-2532.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1179-2556.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1179-2556.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1179-2556.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1179-2556.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2208.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2208.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2208.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2208.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2688.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2688.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2688.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2688.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1284-2778.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1284-2778.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1284-2778.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1284-2778.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1290-2796.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1290-2796.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1290-2796.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1290-2796.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1334-750.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1334-750.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1334-750.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1334-750.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1488-2266.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1488-2266.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1488-2266.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1488-2266.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1536-2048.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1536-2048.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1536-2048.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1536-2048.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1620-2160.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1620-2160.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1620-2160.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1620-2160.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1640-2360.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1640-2360.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1640-2360.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1640-2360.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2224.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2224.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2224.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2224.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2388.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2388.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2388.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2388.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-1792-828.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-1792-828.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-1792-828.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-1792-828.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-1536.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-1536.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-1536.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-1536.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-2732.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-2732.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-2732.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-2732.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2160-1620.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2160-1620.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2160-1620.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2160-1620.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2208-1242.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2208-1242.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2208-1242.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2208-1242.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2224-1668.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2224-1668.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2224-1668.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2224-1668.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2266-1488.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2266-1488.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2266-1488.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2266-1488.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2360-1640.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2360-1640.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2360-1640.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2360-1640.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2388-1668.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2388-1668.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2388-1668.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2388-1668.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2436-1125.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2436-1125.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2436-1125.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2436-1125.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2532-1170.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2532-1170.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2532-1170.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2532-1170.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2556-1179.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2556-1179.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2556-1179.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2556-1179.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2688-1242.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2688-1242.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2688-1242.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2688-1242.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2732-2048.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2732-2048.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2732-2048.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2732-2048.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2778-1284.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2778-1284.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2778-1284.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2778-1284.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-2796-1290.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-2796-1290.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-2796-1290.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-2796-1290.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-640-1136.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-640-1136.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-640-1136.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-640-1136.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-750-1334.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-750-1334.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-750-1334.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-750-1334.jpg diff --git a/website/assets/pwa/2024-09-16_10:57:54/apple-splash-828-1792.jpg b/website/assets/pwa/2024-09-17_09-06-03/apple-splash-828-1792.jpg similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/apple-splash-828-1792.jpg rename to website/assets/pwa/2024-09-17_09-06-03/apple-splash-828-1792.jpg diff --git a/website/assets/pwa/2024-09-17_09-06-03/favicon-196.png b/website/assets/pwa/2024-09-17_09-06-03/favicon-196.png new file mode 100644 index 0000000000000000000000000000000000000000..85826d93656c4894d77d30ff18d209a04d3e63d5 GIT binary patch literal 6878 zcmY*ecQ_p1_a3WlSe>x?>OHFykziLRYIHt`-Xm&Oud4+?lpw5LLzF~IEJ7k1Er?zc zM4~3T2*1hqzuzA-^W1yxGxwhN&VA2&&LkP$)uf_er2qhcN?QwU3_b_`T~IRc-dp+D z6MPUoG}crD8b{cF003*AHd@s*q;RJQ<7YD!KJ@l&7fplN9QkV^`f|8h25)ThXJNbs z0{?i6dx5X~R6ThSukl2ip?6S5<%uJ)KEyqQMLJaLrM4p`#_Lu_Ha(lceP@apmpMIe zFF$04J0Al#?@VHA*Tinm+skGvgl^r`(jsQBBlslDB`?$br1+psaas9$Fy~uT1`G8I z4ck8EZUtf)(Q+FoH-Vr^3xSbf-M3wlzwa-fV z9VSdpkiFL0atl3T98yTIw_fakjf&CA$GSZw^C7Fw&tp?{+I=f7Ep5crE67y&1-N}} z%yZyJ*3lwrufQspl$WYB)wl?mDd>lgjs`>1?iuM0gKHX|A-DuOH@u2FIjG z>W+md3;~}JRK{Wxv~krUC@_6jmR5T=|vd{0CL7m zUNas;Dr`YynB}JYwD00(Y>=o`rC^iy{%bcyT#XfK;3ni#y>MOa1c`~H2Q^Qid6RU6 zaVtBWX%51XBibd#lb=`=uo1ILZ*VB&o_NI4T~$CZVoK0zosz58`J|CHemCys_@hD+ z=>(`%)w9nuf4Z{%;*Rq4)!BI3<@U8-=O_`?L*DaRrMIlguqc&y+^Jr(tWA~~*whXoEwYhm6(I{F{^vl=&+1Fy7%VOE9LX2Zo=zd-BA1D)k#!|Z}nGvA*Q@m27&$k zghTr=<}*(3cTH}x6<;k-Xr-7)^0DiXaJAO!9}S@;vQXFl~j8&8nQinL*N5BE*;*6Z4E zvEHTcYGXJdMf_GN1L(Zvdn|QZU1j8GU3hxK z@!7z1{1>;lzZ0-~z<39%Lu5Vgq=40Mh}V5=2xgxX+5W7!LCuj13oU5`+e)~KHQJ@q z5b5mGABN1>>Evl1I_N`lZu-9koA%b#h!Dl@X1`51Pp3vXb&|gQEjBFr=>%sg_6awE zHjFstLFDNdZX14`*n!9Ucp&?2)d&ra$Aj4sJMgLPyX$1ZUv3*7Ttw1NX#7OJdbA+f zm1E$$r)-Xg+kJZ~ZcUv&Ne}HetsnN54vAQEm~aDD1MfJ95QzO+k{cG!RB zQ+~(#Oa5ugy+A9u9o8P!!Q{ z@j$_rwmVtU*;r`p*CppeLRM)4HZV?}sCDeU6#tVN?lGL#GwGLlu^A8gCttI=pmtuI z&)4ep&4l#PqTato+>zCl>+5pj1)>;?$}wG%7YnGEd-r$--!V8xKKlsTm*RKsy8yuN z#1#%#+N4YtW`k^RC|q7|P`QOvR(J2yAEiBrby3X=megdyVJS4Op*^}cI7bxsggX-Y zrrnz~a?c~ryA&r9^8f?d>L1EE!+B7$=^ruhk@EI%w)b2jr>PU%@_!46=peIlmN)s? z9Q|yYnBqJ?)^tzoOUy#eO+L1cj?eyXDsiW6gh?oyy}BZ=28=m_oA2 zs*@3RdGvUNInsX6*-`rn?>%+G&RDMc5*>apUTULo*5LJ+f5p3hIuE^dDHm49nI9x% zLM^MCvK;rrqq9$jgB~c^IJGRD*9|p!g(#%e%DNLbXZ<_|vzw?~<$9?zxzst7ecnwu zpTa7VHl%EFOz+aCw=BZnJM9e>B$+4<6)hpS6&`lfImq2QFlV*Ol`5lK@;r=$3p0PP z>(j&1YKbm!{R}tAMHJF&VJHYkxf3CjtF|wj%S-c8c?pRsqTjqrN4G*Xa}lPMe~z?Y za-I;LcK4vDoi)lFdg8#hfm7%_`Z5&|Un7~um!c7(GJ2r?KcsS0a)0DHi5J(+RfP{$ z+u;_xS#}lqN2zs^X&xgQP#DoG$zdYjdrjG1ohAC z8}Etb+bO{N$0|dgUfB`>adkLv{8{Pl%<2zL@nKr@@g4`Tc|Ir*2`wh|W)XH!YNrF8 z8SQ3bQJitsvWz!$k?CtGq1sh!AiXcv0(SBb!W0>;XjabMxt{GtZ+6-<^!_J@&Q21N zW(~YbZ?puF8Z506EO@LY?Wm!0N$c@+DWwyW-rLn=i-jw|QJt^me?J;R^-fq|>^A~N z^*y1E>+^SCZ`4i#Q?GO)E7{8)k=x7cO1fu`D8FI~d`8pX<#(P$CQY}b1OV@;gg%c{ zGRh1XCSH{R%l3sr2Y$AuR%QOOZJQp*-Ht&T#Z)^sB4DpiZnE8%`F5LU;*tXl7s+n5 zb!AbiNx`aif3L{Wb@sWVOKxQ!=F^V4y#MI>U}FHWr3tIM)N-w+Vaws|{$Wva%pvvt z$y$lghImdPH>f}mnsxXW=BZBf1>$tB>h|Qr!Intpk!kO;$4?(^ypRdQ=+w;A2D8LR zSHwr$sX%=7UL^&J?sxNjGa9*Z)tgr55M;Dm`$7C;N%3u?pm2tKkEU#|Ct&7bNjp+fnQj1QZlI!n5T}TtCS?Q%qIPw$@+{Fan-f1l7AR@#oYP`VISzsGF-dSEg9%o?!^zJWVGPbQewVL!nAR0eD z-xOPJ3A$OfgIyv5R5+^}w*(??exM}@BKTcHUajSGntg8mEvS!8kcZ)y+Bnt z5ZaHCN3=a8p3n@+y>}gOJ)|x}x*1#F>8HJD8?yw~yh|Cz?o)V|&?N2M7~EgdcRsnk z4 zX;*8hg9fR>=KFkQ9mPJ2CWnNla$|{3Us%D3$c`pUpZpAvB_!0T{M7w&RND9EC5HKne3XEHF(UimMtkcUn~^HVmP4Xh-^GEa6R&*P3O*wHJ%RRbsKbP!^ZZE`^>gV##wzaQu_6sfK-tAGEk*zu`>VF(7 znd^(UC~lTS!Q5{d4APwYje5sljeHNhLG1#f?D)|b=3S6@n7LTFol-yz;@#a-h;d12 zTpImFdq$SE+FaAw{Fhxs^uRk(Y$UCEVgLoe9-$_~bSTDP1dYyYi zp}a;0J#m@Kw^9jPH{iy0rKYl%^T%@@6*n)_VgzM&u00f4Nl9=QO<)38bmCnV$6-KJ z+|jqaAAYiJCCAfME7nI?gwg|!wwZM_HVjp>FJ>=O?c(;yk?Ed5@tLSm@E+Z%nKI8_ zPK%-_Pbn!vwB$FnV58d`oRF(eL76wWYLDa(TD{Q;G8u~@l z_UJrrXPPIK8^bDb)n_>(X6EZt@8syyVCmrRqf&(03btc6l2B}!5$=fkj4&?9u|cjn zNevzP=45CI^u-rh6hvO@ELTIsiAwC~1r1f(WMyP0 zKs3;;&@%W^mv$>j5`zPpk*or}g=B5JdX1=AzjDauid)S0C1X7i_m?05jF6H2RbNvFEM; zeosmMNPsx@%>hrOv759EYi{w;3;NBimoe-jCVK zv{r%*R*MdxGY)z;L!q@dQGg1_bM6$ee&;Zg5n>8J$VOROpFw-aBAqb)7w4?NSye?e z9I8SDs2vex)_L1Jd-NPk1n$bC{|%lz<9QJ+iZL)jDEu!{xF^#a89etpU6;6J!<^Jj zvGxetz(Tf(wJ>sAMKgkw`&3f>n!;_a>z^IwV(IL~s>$-kMDJ#XXGFK(R)9ae@N*BF z=aP=YX`|M(z!iXe46Yysg!b{~y8|&*+e6-t00!Yaf0Pux3b1pL>|m%~vwBC;8huHz$szFS zOd5vxhQ09PDX^_mSYK$krXk(!*>iv)*Yi2p{S{gLB8@${N=?|*5VB_cVd=LbS7VCR zibp2|RAM;(*#wXhA1}Q+MBK9BN-O@wtk_T6%GBQ+G)J>yr5iX4xJP|8Gs+cFGrrn5gqQm|VED6D0)!0({4DT(5JI|c3j|{eFEpD<4s`av3PIFTk z-Uh>&>dqYrs{{lR$)fe{GW_fJEDV;*0Xc^sC2E~ub>HBovKOlwn}iIZORR@ zcLN8(GQ;zVNmhhVTEuyp75PK}W5F#O2rzttxDlna#Q2kZyklcngu@;1tVT-%7j`R0 zn`e_Lgn{L?J;bBTB-vFsu%-8J^oj~ZE3)S1p;7y zXbWIi)bhun|NW73hopeM_U=EXVq#D+h|Bv;of{>bpr`1#QyRRD^!mMg%m`8+&e@cd zm%K}|`-F2`N-q}g8-KIxdEUIF)u4tYUQkRbP|?z%KUcw2onYlvT4BE1g*bf4=0rfq$~04Ph_cIMUZ z{bvMf3(fQO;^9JN5vZ%hx@D<%vpj{eYy$$|o}+v8gye4Ycwd^kdA=_Pp0>Xn2$-@l3is2BJS3f| zL`E=eCx=z!X;P9+xn_TuBd!pYA_FxI_-V6;??2Cy1hEtNWRG|>*Vu?KtXE#3?7Mf) z4^IIzBM)E9@B`&|xv_N9FLTMZMD6^k%cNaAl*!@Uo1759;`5uD|1y8AQC}+6RDrvx z@)iGX0(SkI@hP?P=#~`P&3fAzxbvmrJ)eK2pIUMr$Pt#r=6kSop$NN^&zq53p{luv zm({^Y-o`8CZx6r`-~rJJYRGhHVsRPBG?xDvK3Z`SzjrmN^>z1Sm^Q@f=#3}E4+p1+ zD^YHE?AEtP;@^{4GZ_u=Y=_=y7lH=Iw+~VOjBFtJSI(GUH3w{LhX1&f65Qf^r^@_f zZ4suL>d*Q8NW!G{n>YDe;RQ?bx^`}CV1_znai(9h_bdtHBkIxEMKhdA_Hk>&NsMj& z{fZ?^`7fMG@Zl@|9_zdBf-LGq;mFYDtj z5U;UzXu>*%@lAtlV6Ee+>IvJuVh%9K=t|GP$QFIG;Q%oPYA;jlM#CY1 z`0o1nLO&n#LT+gBvK@@knF~waFJ4bfuR(lMR2`mVcyG3ktibP#C^T0p1Cha+F4$vc>N+cz zGS)uxMX6AXOaclW_)7r;-%>=M(2FqV4`$C}RVS^kocS+)VJcn!i*Rf(Uw^AW0dbYk( zTW-2DshyY%v4B1p5zx)P6r#}09Cssm646ZAEx4~5z_f$M3X!T&{WCU(C>-9WZA{dSI5U9Y7nrQt-)q7I}yxV1HAa2S8scD+dgSgCO?VT7srGr_i zA!ffSQxL8D!J#W5S3gR_K;bN`y&U@giib zWM7M4;@rgJn|csY+q63TCk*I-G&gbjzsS?G6=*~Gb9JxC=_R@Z;ALVOnUdP_6O@o3 z-W|Efw3&R%F+d7v@k>Sc^G#36RW2@Z(PwtQTO33l_!zjXQC~4=YgWhw6e9cwl=>*) zA?$Kpt?Du6*G@G`q;Y?aIh9r{z|abYw%gJHTOs;)6K42>hJSY~#eFAN8? zRXb}YQg#cWt2>$%l0^H=O?j0 zR)`?pQ>NaYAjyW0d(`75X| zW-N2B^5KV-<=TRm6usuP-dgWc5x^)g*SJzMLnQbD!J<0F=6I`{H4xQ?_mr(312qNNE6z<#5>$T4iEH^WUmNR`!*;`O(B!_=wkJe~A<&xuz3fi_%Vjuw4tuIdGk z=Y^wT%3o%0O`BFBB_1jxz6Bx!J*rDt;o%(MziWN2z)j88#*2N7eK!=x44K~Cn-k^+gJBr8R;JoAP-u|oUiwOLd#J0o>iKU5cDR=_q9m_=m{^PfAAsxTFL6A z7sSiNUE8-Jp>MQ*Nakjy)j_M0mru-10*BImPP`LK+#zi562XO*gnYFh$Pd|e - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/assets/pwa/2024-09-16_10:57:54/manifest-icon-192.maskable.png b/website/assets/pwa/2024-09-17_09-06-03/manifest-icon-192.maskable.png similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/manifest-icon-192.maskable.png rename to website/assets/pwa/2024-09-17_09-06-03/manifest-icon-192.maskable.png diff --git a/website/assets/pwa/2024-09-16_10:57:54/manifest-icon-512.maskable.png b/website/assets/pwa/2024-09-17_09-06-03/manifest-icon-512.maskable.png similarity index 100% rename from website/assets/pwa/2024-09-16_10:57:54/manifest-icon-512.maskable.png rename to website/assets/pwa/2024-09-17_09-06-03/manifest-icon-512.maskable.png diff --git a/website/generate-icons.sh b/website/generate-icons.sh index 20f397c7c..148b8481a 100755 --- a/website/generate-icons.sh +++ b/website/generate-icons.sh @@ -1,12 +1,12 @@ #!/usr/bin/env bash -DATE=$(date -u '+%Y-%m-%d_%H:%M:%S') +DATE=$(date -u '+%Y-%m-%d_%H-%M-%S') OUTPUT="/assets/pwa/${DATE}" mkdir ".${OUTPUT}" cp "./assets/pwa/index.html" ".${OUTPUT}/" -pwa-asset-generator "../assets/logo-dove-orange.svg" ".${OUTPUT}" \ +pwa-asset-generator "../assets/logo-icon.svg" ".${OUTPUT}" \ --index ".${OUTPUT}/index.html" \ --manifest "./manifest.webmanifest" \ --favicon \ @@ -31,20 +31,3 @@ pwa-asset-generator "../assets/logo-dove-light.svg" ".${OUTPUT}" \ --padding "min(35vh, 35vw)" \ --path-override "${OUTPUT}" \ --quality "100" - -# pwa-asset-generator "../assets/logo-icon.svg" "./assets" \ -# --index "./assets/index.html" \ -# --splash-only \ -# --background "#fffaf6" \ -# --padding "min(40vh, 40vw)" \ -# --path-override "/assets" \ -# --quality "100" - -# pwa-asset-generator "../assets/logo-icon.svg" "./assets" \ -# --index "./assets/index.html" \ -# --splash-only \ -# --dark-mode \ -# --background "#12100f" \ -# --padding "min(40vh, 40vw)" \ -# --path-override "/assets" \ -# --quality "100" diff --git a/website/index.html b/website/index.html index 68e022d86..ae7859986 100644 --- a/website/index.html +++ b/website/index.html @@ -1,4 +1,4 @@ - + @@ -1014,6 +1014,7 @@ margin: -1rem -1.5rem; padding: 1rem 1.5rem; overflow-x: auto; + min-width: 0; > div { flex: 0; @@ -1284,11 +1285,10 @@ } - +