diff --git a/Cargo.lock b/Cargo.lock index 350c091..0679578 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,12 +68,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.2" @@ -113,15 +107,6 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "bumpalo" version = "3.13.0" @@ -273,15 +258,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" -[[package]] -name = "cpufeatures" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" -dependencies = [ - "libc", -] - [[package]] name = "crc32fast" version = "1.3.2" @@ -340,16 +316,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array 0.14.7", - "typenum", -] - [[package]] name = "cyberpunk-splash" version = "0.1.0" @@ -364,13 +330,15 @@ dependencies = [ name = "dashboard" version = "0.1.0" dependencies = [ + "cairo-rs", "chrono", "fluent", "fluent-ergonomics", "futures", "geo-types", - "horrorshow", - "http", + "gio", + "glib", + "gtk4", "ifc", "lazy_static", "memorycache", @@ -380,17 +348,6 @@ dependencies = [ "serde_json", "tokio", "unic-langid", - "warp", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", ] [[package]] @@ -399,7 +356,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2517b0555262aeeda0d107a40ecfbbcf185921180ffb4acf316ebe0887467e26" dependencies = [ - "generic-array 0.11.2", + "generic-array", "num-traits", "serde", "typenum", @@ -786,16 +743,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "geo-types" version = "0.1.0" @@ -1078,31 +1025,6 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" -[[package]] -name = "headers" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" -dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", - "bytes", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http", -] - [[package]] name = "heck" version = "0.4.1" @@ -1128,12 +1050,6 @@ dependencies = [ "image", ] -[[package]] -name = "horrorshow" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8371fb981840150b1a54f7cb117bf6699f7466a1d4861daac33bc6fe2b5abea0" - [[package]] name = "http" version = "0.2.9" @@ -1413,16 +1329,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1450,24 +1356,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "multer" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http", - "httparse", - "log", - "memchr", - "mime", - "spin", - "version_check", -] - [[package]] name = "nanorand" version = "0.7.0" @@ -1962,7 +1850,7 @@ version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64 0.21.2", + "base64", "bytes", "encoding_rs", "futures-core", @@ -2027,15 +1915,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" -dependencies = [ - "base64 0.21.2", -] - [[package]] name = "rusty-fork" version = "0.3.0" @@ -2063,12 +1942,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -2180,17 +2053,6 @@ dependencies = [ "typeshare", ] -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -2407,29 +2269,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-stream" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -2491,7 +2330,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", - "log", "pin-project-lite", "tracing-core", ] @@ -2511,25 +2349,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" -[[package]] -name = "tungstenite" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" -dependencies = [ - "base64 0.13.1", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "rand", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "type-map" version = "0.4.0" @@ -2591,15 +2410,6 @@ dependencies = [ "tinystr", ] -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.13" @@ -2632,12 +2442,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "uuid" version = "0.8.2" @@ -2684,37 +2488,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "warp" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "headers", - "http", - "hyper", - "log", - "mime", - "mime_guess", - "multer", - "percent-encoding", - "pin-project", - "rustls-pemfile", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tokio-util", - "tower-service", - "tracing", -] - [[package]] name = "wasi" version = "0.10.0+wasi-snapshot-preview1" diff --git a/dashboard/Cargo.toml b/dashboard/Cargo.toml index 668e3a8..a50b084 100644 --- a/dashboard/Cargo.toml +++ b/dashboard/Cargo.toml @@ -6,21 +6,21 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -chrono = { version = "0.4", features = ["serde"] } -fluent = { version = "0.16" } -fluent-ergonomics = { path = "../fluent-ergonomics/" } -futures = { version = "0.3" } -geo-types = { path = "../geo-types/" } -lazy_static = { version = "1.4" } -unic-langid = { version = "0.9" } -horrorshow = { version = "0.8" } -http = { version = "*" } -ifc = { path = "../ifc/" } -memorycache = { path = "../memorycache" } -reqwest = { version = "0.11", features = ["json"] } -serde_derive = { version = "1" } -serde_json = { version = "1" } -serde = { version = "1" } -tokio = { version = "1", features = ["full"] } -warp = { version = "0.3" } - +cairo-rs = { version = "0.17" } +chrono = { version = "0.4", features = ["serde"] } +fluent-ergonomics = { path = "../fluent-ergonomics/" } +fluent = { version = "0.16" } +futures = { version = "0.3" } +geo-types = { path = "../geo-types/" } +gio = { version = "0.17" } +glib = { version = "0.17" } +gtk = { version = "0.6", package = "gtk4" } +ifc = { path = "../ifc/" } +lazy_static = { version = "1.4" } +memorycache = { path = "../memorycache" } +reqwest = { version = "0.11", features = ["json"] } +serde_derive = { version = "1" } +serde_json = { version = "1" } +serde = { version = "1" } +tokio = { version = "1", features = ["full"] } +unic-langid = { version = "0.9" } diff --git a/dashboard/src/main.rs b/dashboard/src/main.rs index 1d0b604..e1a9a3e 100644 --- a/dashboard/src/main.rs +++ b/dashboard/src/main.rs @@ -1,28 +1,25 @@ +/* #[macro_use] extern crate serde_derive; #[macro_use] -extern crate horrorshow; -#[macro_use] extern crate lazy_static; +*/ -use chrono::{Datelike, Local, TimeZone, Utc}; -use fluent::{FluentArgs, FluentValue}; +use chrono::Datelike; +use glib::Object; +use gtk::{prelude::*, subclass::prelude::*}; + +/* use geo_types::{Latitude, Longitude}; -use horrorshow::helper::doctype; -use horrorshow::prelude::*; use ifc; -use std::{ - borrow::Cow, - net::{IpAddr, Ipv4Addr, SocketAddr}, - sync::Arc, -}; -use warp::{reply::Html, Filter, Rejection}; +use std::sync::Arc; mod soluna_client; -use soluna_client::{SolunaClient, SunMoon}; +use soluna_client::SolunaClient; mod solstices; -use solstices::{Event, EVENTS}; +use solstices::EVENTS; +*/ /* const EO_TEXT: &'static str = " @@ -167,8 +164,70 @@ async fn page( } */ -#[tokio::main] -pub async fn main() { +#[derive(Default)] +pub struct DatePrivate {} + +#[glib::object_subclass] +impl ObjectSubclass for DatePrivate { + const NAME: &'static str = "Date"; + type Type = Date; + type ParentType = gtk::Box; +} + +impl ObjectImpl for DatePrivate {} +impl WidgetImpl for DatePrivate {} +impl BoxImpl for DatePrivate {} + +glib::wrapper! { + pub struct Date(ObjectSubclass) @extends gtk::Box, gtk::Widget; +} + +impl Date { + fn new() -> Self { + let s: Self = Object::builder().build(); + + let dt = ifc::IFC::from(chrono::Local::now().date_naive().with_year(12023).unwrap()); + s.append(>k::Label::new(Some( + format!( + "{:?}, {:?} {}, {}", + dt.weekday(), + dt.month(), + dt.day(), + dt.year() + ) + .as_ref(), + ))); + s + } +} + +pub fn main() { + /* + let runtime = Arc::new( + tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .unwrap(), + ); + */ + let app = gtk::Application::builder() + .application_id("com.luminescent-dreams.dashboard") + .build(); + + app.connect_activate( + // let runtime = runtime.clone(); + |app| { + let window = gtk::ApplicationWindow::new(app); + window.present(); + + let date = Date::new(); + window.set_child(Some(&date)); + }, + ); + + app.run(); + + /* let now = Local::now(); let ifc = ifc::IFC::from(now.date_naive().with_year(12023).unwrap()); let next_event = EVENTS.next_event(now.with_timezone(&Utc)).unwrap(); @@ -207,4 +266,5 @@ pub async fn main() { .unwrap_or(" -- ".to_owned()), sun_moon.moon_phase ); + */ }