respect gui config

This commit is contained in:
2024-11-09 14:08:37 -07:00
parent b351f2fe13
commit 7308a210e2
6 changed files with 76 additions and 63 deletions
Generated
+50 -49
View File
@@ -202,7 +202,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -237,7 +237,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -364,7 +364,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
"syn 2.0.68",
"syn 2.0.87",
"which",
]
@@ -811,7 +811,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -834,7 +834,7 @@ dependencies = [
"ident_case",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -845,7 +845,7 @@ checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
dependencies = [
"darling_core",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -871,7 +871,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustc_version",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -955,7 +955,7 @@ dependencies = [
"prettyplease",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1091,7 +1091,7 @@ dependencies = [
"convert_case 0.6.0",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1153,7 +1153,7 @@ dependencies = [
"proc-macro2",
"quote",
"slab",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1167,7 +1167,7 @@ dependencies = [
"krates",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"tracing",
]
@@ -1222,7 +1222,7 @@ dependencies = [
"proc-macro2",
"quote",
"server_fn_macro",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1251,7 +1251,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1314,7 +1314,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1335,7 +1335,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1459,7 +1459,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1568,7 +1568,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -1822,7 +1822,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -2130,7 +2130,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -2711,7 +2711,7 @@ dependencies = [
"manganis-common",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"tracing-subscriber",
]
@@ -2888,6 +2888,7 @@ dependencies = [
"ogg",
"once_cell",
"ordermap",
"serde",
"serde-wasm-bindgen 0.6.5",
"serde_json",
"sir",
@@ -3137,7 +3138,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -3377,7 +3378,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -3471,7 +3472,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [
"proc-macro2",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -3973,9 +3974,9 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.203"
version = "1.0.214"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
dependencies = [
"serde_derive",
]
@@ -4014,13 +4015,13 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.203"
version = "1.0.214"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4053,7 +4054,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4116,7 +4117,7 @@ dependencies = [
"convert_case 0.6.0",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"xxhash-rust",
]
@@ -4127,7 +4128,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00783df297ec85ea605779f2fef9cbec98981dffe2e01e1a9845c102ee1f1ae6"
dependencies = [
"server_fn_macro",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4258,7 +4259,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdd941cc539bd3dc694edaf9d0c4e1221d02baa67c6b45ec04fad1024d9e8139"
dependencies = [
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4396,9 +4397,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.68"
version = "2.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9"
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
dependencies = [
"proc-macro2",
"quote",
@@ -4491,7 +4492,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4546,7 +4547,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4604,7 +4605,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4748,7 +4749,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -4961,7 +4962,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"wasm-bindgen-shared",
]
@@ -4995,7 +4996,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -5112,7 +5113,7 @@ checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -5220,7 +5221,7 @@ checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -5231,7 +5232,7 @@ checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -5242,7 +5243,7 @@ checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -5253,7 +5254,7 @@ checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -5636,7 +5637,7 @@ dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"zvariant_utils",
]
@@ -5669,7 +5670,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
[[package]]
@@ -5701,7 +5702,7 @@ dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
"zvariant_utils",
]
@@ -5713,5 +5714,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.87",
]
+1
View File
@@ -74,6 +74,7 @@ futures-channel = "0.3.30"
sir = { version = "0.5.0", features = ["dioxus"] }
tokio = { version = "1.41.1", features = ["net", "rt"], optional = true }
tokio-rustls = { version = "0.26.0", optional = true }
serde = { version = "1.0.214", features = ["derive"] }
[features]
web = [
+2 -2
View File
@@ -6,7 +6,7 @@ use ordermap::OrderSet;
use sir::{css, global_css};
use std::collections::HashMap;
use crate::imp;
use crate::{imp, CONFIG};
pub type ChannelId = u32;
pub type UserId = u32;
@@ -444,7 +444,7 @@ pub fn ServerView() -> Element {
#[component]
pub fn LoginView() -> Element {
let net: Coroutine<Command> = use_coroutine_handle();
let default_address = option_env!("MUMBLEWEB2_WEBTRANSPORT_SERVER_ADDRESS").unwrap_or("");
let default_address = CONFIG.proxy_url.as_deref().unwrap_or("");
let mut address = use_signal(|| default_address.to_string());
let previous_username = imp::load_username();
+4
View File
@@ -177,3 +177,7 @@ pub fn set_default_username(username: &str) -> Option<()> {
pub fn load_username() -> Option<String> {
return None;
}
pub fn load_config() -> Option<super::GuiConfig> {
None
}
+9 -12
View File
@@ -1,5 +1,6 @@
use crate::app::Command;
use crate::bail;
use crate::CONFIG;
use dioxus::prelude::*;
use futures::AsyncRead;
use futures::AsyncWrite;
@@ -346,17 +347,6 @@ pub async fn network_connect(
) -> Result<(), Error> {
console::log_1(&"Rust via WASM!".into());
let Ok(server_hash): Result<Vec<u8>, _> = include_str!("../../server_hash.txt")
.trim()
.trim_matches(&['[', ']'])
.split(',')
.map(|x| x.trim().parse())
.collect()
else {
bail!("could not parse server hash");
};
let hash = web_sys::js_sys::Uint8Array::from(server_hash.as_slice());
let object = web_sys::js_sys::Object::new();
Reflect::set(
@@ -365,7 +355,10 @@ pub async fn network_connect(
&JsValue::from_str("sha-256"),
)?;
web_sys::js_sys::Reflect::set(&object, &"value".into(), &hash)?;
if let Some(server_hash) = &CONFIG.cert_hash {
let hash = web_sys::js_sys::Uint8Array::from(server_hash.as_slice());
web_sys::js_sys::Reflect::set(&object, &"value".into(), &hash)?;
}
let array = web_sys::js_sys::Array::new();
array.push(&object);
@@ -423,3 +416,7 @@ pub fn load_username() -> Option<String> {
.get_item("username")
.ok()?
}
pub fn load_config() -> Option<super::GuiConfig> {
serde_wasm_bindgen::from_value(Reflect::get(window()?.as_ref(), &"config".into()).ok()?).ok()
}
+10
View File
@@ -18,6 +18,8 @@ use mumble_protocol::control::ControlPacket;
use mumble_protocol::voice::VoicePacketPayload;
use mumble_protocol::Clientbound;
use mumble_protocol::Serverbound;
use once_cell::sync::Lazy;
use serde::Deserialize;
use std::collections::hash_map::Entry;
use std::collections::HashMap;
use std::time::Duration;
@@ -32,6 +34,14 @@ pub mod imp;
#[path = "imp/desktop.rs"]
pub mod imp;
#[derive(Clone, Deserialize, Default)]
pub struct GuiConfig {
pub proxy_url: Option<String>,
pub cert_hash: Option<Vec<u8>>,
}
pub static CONFIG: Lazy<GuiConfig> = Lazy::new(|| imp::load_config().unwrap_or_default());
#[macro_export]
macro_rules! bail {
($($x:tt)*) => {