general: update

This commit is contained in:
k
2024-09-18 00:14:53 +02:00
parent da7c114d41
commit 52a65fcad1
51 changed files with 753 additions and 657 deletions
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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`.
<p align="center">
<picture>
+5 -5
View File
@@ -49,10 +49,6 @@ fn _dataset_handler(
query: Query<Params>,
AppState { routes }: AppState,
) -> color_eyre::Result<Response> {
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::<usize>::_read_dir(&route.file_path, &route.serialization);
process_datasets(headers, kind, &mut chunk, &mut route, query, datasets)?;
}
Kind::Height => {
let datasets =
HeightMap::<usize>::_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,
+3 -3
View File
@@ -54,14 +54,14 @@ fn value_to_response<T>(value: T) -> Response
where
T: Serialize,
{
generic_to_reponse(value, None, 5)
generic_to_reponse(value, None, 1)
}
fn dataset_to_response<T>(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<T>(generic: T, chunk: Option<Chunk>, 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,
})
+56 -4
View File
@@ -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<DateTime<Utc>>;
fn check_if_modified_since(
&self,
path: &Path,
) -> color_eyre::Result<(DateTime<Utc>, Option<Response<Body>>)>;
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<Utc>);
@@ -83,11 +97,49 @@ impl HeaderMapUtils for HeaderMap {
}
fn insert_last_modified(&mut self, date: DateTime<Utc>) {
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<Utc>, Option<Response<Body>>)> {
let time = path.metadata()?.modified()?;
let date: DateTime<Utc> = 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<DateTime<Utc>> {
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() {
+10 -5
View File
@@ -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<Utc> = 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);
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

@@ -1,43 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="icon" type="image/png" sizes="196x196" href="/assets/pwa/2024-09-16_10:57:54/favicon-196.png">
<link rel="apple-touch-icon" href="/assets/pwa/2024-09-16_10:57:54/apple-icon-180.png">
<link rel="icon" type="image/png" sizes="196x196" href="/assets/pwa/2024-09-17_09-06-03/favicon-196.png">
<link rel="apple-touch-icon" href="/assets/pwa/2024-09-17_09-06-03/apple-icon-180.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-2732.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2732-2048.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2388.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2388-1668.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1536-2048.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-1536.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1488-2266.jpg" media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2266-1488.jpg" media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1640-2360.jpg" media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2360-1640.jpg" media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2224.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2224-1668.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1620-2160.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2160-1620.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1290-2796.jpg" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2796-1290.jpg" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1179-2556.jpg" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2556-1179.jpg" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1284-2778.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2778-1284.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1170-2532.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2532-1170.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1125-2436.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2436-1125.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2688.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2688-1242.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-828-1792.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1792-828.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2208.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2208-1242.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-750-1334.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1334-750.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-640-1136.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1136-640.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-2732.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2732-2048.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2388.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2388-1668.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1536-2048.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-1536.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1488-2266.jpg" media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2266-1488.jpg" media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1640-2360.jpg" media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2360-1640.jpg" media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2224.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2224-1668.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1620-2160.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2160-1620.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1290-2796.jpg" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2796-1290.jpg" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1179-2556.jpg" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2556-1179.jpg" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1284-2778.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2778-1284.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1170-2532.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2532-1170.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1125-2436.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2436-1125.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2688.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2688-1242.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-828-1792.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1792-828.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2208.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2208-1242.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-750-1334.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1334-750.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-640-1136.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
<link rel="apple-touch-startup-image" href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1136-640.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
</head>
<body>
</body>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

+2 -19
View File
@@ -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"
+41 -41
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
@@ -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 @@
}
</style>
<!-- Theme script -->
<!-- Scripts -->
<script>
// @ts-check
// Keep in sync with js files
/**
* @import { SettingsTheme } from "./types/self"
@@ -1298,7 +1298,7 @@
localStorage.getItem(settingsThemeLocalStorageKey)
);
const preferredColorSchemeMatchMedia = window.matchMedia(
"(prefers-color-scheme: dark)"
"(prefers-color-scheme: dark)",
);
if (
theme === "dark" ||
@@ -1310,7 +1310,7 @@
}
const backgroundColor = getComputedStyle(
window.document.documentElement
window.document.documentElement,
).getPropertyValue("--background-color");
const meta = window.document.createElement("meta");
meta.name = "theme-color";
@@ -1332,181 +1332,181 @@
rel="icon"
type="image/png"
sizes="196x196"
href="/assets/pwa/2024-09-16_10:57:54/favicon-196.png"
href="/assets/pwa/2024-09-17_09-06-03/favicon-196.png"
/>
<link
rel="apple-touch-icon"
href="/assets/pwa/2024-09-16_10:57:54/apple-icon-180.png"
href="/assets/pwa/2024-09-17_09-06-03/apple-icon-180.png"
/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-2732.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-2732.jpg"
media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2732-2048.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2732-2048.jpg"
media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2388.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2388.jpg"
media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2388-1668.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2388-1668.jpg"
media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1536-2048.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1536-2048.jpg"
media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2048-1536.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2048-1536.jpg"
media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1488-2266.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1488-2266.jpg"
media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2266-1488.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2266-1488.jpg"
media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1640-2360.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1640-2360.jpg"
media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2360-1640.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2360-1640.jpg"
media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1668-2224.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1668-2224.jpg"
media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2224-1668.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2224-1668.jpg"
media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1620-2160.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1620-2160.jpg"
media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2160-1620.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2160-1620.jpg"
media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1290-2796.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1290-2796.jpg"
media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2796-1290.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2796-1290.jpg"
media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1179-2556.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1179-2556.jpg"
media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2556-1179.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2556-1179.jpg"
media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1284-2778.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1284-2778.jpg"
media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2778-1284.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2778-1284.jpg"
media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1170-2532.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1170-2532.jpg"
media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2532-1170.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2532-1170.jpg"
media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1125-2436.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1125-2436.jpg"
media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2436-1125.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2436-1125.jpg"
media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2688.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2688.jpg"
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2688-1242.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2688-1242.jpg"
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-828-1792.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-828-1792.jpg"
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1792-828.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1792-828.jpg"
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1242-2208.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1242-2208.jpg"
media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-2208-1242.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-2208-1242.jpg"
media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-750-1334.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-750-1334.jpg"
media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1334-750.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1334-750.jpg"
media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-640-1136.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-640-1136.jpg"
media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="/assets/pwa/2024-09-16_10:57:54/apple-splash-1136-640.jpg"
href="/assets/pwa/2024-09-17_09-06-03/apple-splash-1136-640.jpg"
media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
/>
</head>
+6 -10
View File
@@ -2,11 +2,7 @@
"name": "kibō",
"short_name": "kibō",
"description": "A better, FOSS, Bitcoin-only, self-hostable Glassnode",
"categories": [
"bitcoin",
"on-chain",
"data"
],
"categories": ["bitcoin", "on-chain", "data"],
"start_url": "/",
"scope": "/",
"display": "standalone",
@@ -15,28 +11,28 @@
"lang": "en",
"icons": [
{
"src": "/assets/pwa/2024-09-16_10:57:54/manifest-icon-192.maskable.png",
"src": "/assets/pwa/2024-09-17_09-06-03/manifest-icon-192.maskable.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/pwa/2024-09-16_10:57:54/manifest-icon-192.maskable.png",
"src": "/assets/pwa/2024-09-17_09-06-03/manifest-icon-192.maskable.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/assets/pwa/2024-09-16_10:57:54/manifest-icon-512.maskable.png",
"src": "/assets/pwa/2024-09-17_09-06-03/manifest-icon-512.maskable.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/assets/pwa/2024-09-16_10:57:54/manifest-icon-512.maskable.png",
"src": "/assets/pwa/2024-09-17_09-06-03/manifest-icon-512.maskable.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}
}
+589 -529
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
File diff suppressed because one or more lines are too long