aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-09-07 00:01:27 +0200
committermetamuffin <metamuffin@disroot.org>2023-09-07 00:01:27 +0200
commit6f644481f397af070e2b91b69846e375caafdbda (patch)
tree330bdaec6d7e2712e9694faeb7a2e11cc022daf3 /server/src
parentbf434555952b3788185a1a875955fa1acbf170b3 (diff)
downloadkeks-meet-6f644481f397af070e2b91b69846e375caafdbda.tar
keks-meet-6f644481f397af070e2b91b69846e375caafdbda.tar.bz2
keks-meet-6f644481f397af070e2b91b69846e375caafdbda.tar.zst
prepare for room watches
Diffstat (limited to 'server/src')
-rw-r--r--server/src/config.rs17
-rw-r--r--server/src/main.rs24
-rw-r--r--server/src/protocol.rs2
-rw-r--r--server/src/room.rs1
4 files changed, 27 insertions, 17 deletions
diff --git a/server/src/config.rs b/server/src/config.rs
index 870315e..0ae90eb 100644
--- a/server/src/config.rs
+++ b/server/src/config.rs
@@ -1,13 +1,20 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct ClientConfig {
- pub webrtc: ClientWebrtcConfig,
- pub appearance: ClientAppearanceConfig,
+pub struct Config {
+ pub features: FeaturesConfig,
+ pub webrtc: WebrtcConfig,
+ pub appearance: AppearanceConfig,
}
+#[rustfmt::skip]
#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct ClientWebrtcConfig {
+pub struct FeaturesConfig {
+ #[serde(default)] pub watch_rooms: bool,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct WebrtcConfig {
pub stun: String,
pub turn: Option<String>,
pub turn_user: Option<String>,
@@ -15,7 +22,7 @@ pub struct ClientWebrtcConfig {
}
#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct ClientAppearanceConfig {
+pub struct AppearanceConfig {
pub accent: String,
pub accent_light: String,
pub accent_dark: String,
diff --git a/server/src/main.rs b/server/src/main.rs
index e637805..3d0af50 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -10,7 +10,7 @@ pub mod protocol;
pub mod room;
use assets::css;
-use config::{ClientAppearanceConfig, ClientConfig};
+use config::{AppearanceConfig, Config};
use hyper::{header, StatusCode};
use listenfd::ListenFd;
use log::{debug, error};
@@ -38,10 +38,10 @@ fn main() {
async fn run() {
env_logger::init_from_env("LOG");
- let client_config: ClientConfig = toml::from_str(include_str!("../../config/client.toml"))
+ let config: Config = toml::from_str(include_str!("../../config/config.toml"))
.expect("client configuration invalid");
- let client_config_json = serde_json::to_string(&client_config).unwrap();
- let client_config_css = css_overrides(&client_config.appearance);
+ let client_config_json = serde_json::to_string(&config).unwrap();
+ let client_config_css = css_overrides(&config.appearance);
let rooms: _ = Rooms::default();
let rooms: _ = warp::any().map(move || rooms.clone());
@@ -154,22 +154,22 @@ fn signaling_connect(rsecret: String, rooms: Rooms, ws: warp::ws::Ws) -> impl Re
}
fn css_overrides(
- ClientAppearanceConfig {
+ AppearanceConfig {
accent,
accent_light,
accent_dark,
background,
background_dark,
- }: &ClientAppearanceConfig,
+ }: &AppearanceConfig,
) -> String {
format!(
r#":root {{
- --bg: {background};
- --bg-dark: {background_dark};
- --ac: {accent};
- --ac-dark: {accent_dark};
- --ac-dark-transparent: {accent_dark}c9;
- --ac-light: {accent_light};
+--bg: {background};
+--bg-dark: {background_dark};
+--ac: {accent};
+--ac-dark: {accent_dark};
+--ac-dark-transparent: {accent_dark}c9;
+--ac-light: {accent_light};
}}
"#
)
diff --git a/server/src/protocol.rs b/server/src/protocol.rs
index cc40cb6..a27e339 100644
--- a/server/src/protocol.rs
+++ b/server/src/protocol.rs
@@ -12,6 +12,7 @@ pub enum ClientboundPacket {
ClientJoin { id: usize },
ClientLeave { id: usize },
Message { sender: usize, message: String },
+ RoomInfo { hash: String, user_count: usize },
}
#[derive(Debug, Clone, Serialize, Deserialize)]
@@ -22,4 +23,5 @@ pub enum ServerboundPacket {
recipient: Option<usize>,
message: String,
},
+ WatchRooms(Vec<String>),
}
diff --git a/server/src/room.rs b/server/src/room.rs
index bfc391b..abc1a52 100644
--- a/server/src/room.rs
+++ b/server/src/room.rs
@@ -117,6 +117,7 @@ impl Room {
self.broadcast(Some(sender), packet).await
}
}
+ ServerboundPacket::WatchRooms(list) => {}
}
}