From 24b9c14f927d008ff45fae22684703fcffcb1513 Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Thu, 17 Sep 2020 15:25:26 -0700 Subject: [PATCH] Checkpoint this work with some basic websockets and prettier layout --- Cargo.lock | 124 +++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 2 + assets/board.png | Bin 0 -> 8794 bytes sounds/boo.wav | Bin 131756 -> 0 bytes src/main.rs | 59 ++++++++++++++++++-- views/index.hbs | 138 ++++++++++++++++++++++++++++++++++++++++++++--- 6 files changed, 312 insertions(+), 11 deletions(-) create mode 100644 assets/board.png delete mode 100644 sounds/boo.wav diff --git a/Cargo.lock b/Cargo.lock index b6a4366..8e31f94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -266,6 +266,19 @@ dependencies = [ "syn", ] +[[package]] +name = "async-tungstenite" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5c45a0dd44b7e6533ac4e7acc38ead1a3b39885f5bbb738140d30ea528abc7c" +dependencies = [ + "futures-io", + "futures-util", + "log", + "pin-project", + "tungstenite", +] + [[package]] name = "atomic-waker" version = "1.0.0" @@ -446,6 +459,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +[[package]] +name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + [[package]] name = "cache-padded" version = "1.1.1" @@ -478,6 +497,8 @@ name = "charcuterie" version = "0.1.0" dependencies = [ "async-std", + "async-tungstenite", + "futures", "glob", "handlebars", "log", @@ -728,6 +749,27 @@ dependencies = [ "web-sys", ] +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "futures" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.5" @@ -735,6 +777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -743,6 +786,17 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +[[package]] +name = "futures-executor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.5" @@ -776,6 +830,12 @@ dependencies = [ "syn", ] +[[package]] +name = "futures-sink" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" + [[package]] name = "futures-task" version = "0.3.5" @@ -801,9 +861,13 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" dependencies = [ + "futures-channel", "futures-core", + "futures-io", "futures-macro", + "futures-sink", "futures-task", + "memchr", "pin-project", "pin-utils", "proc-macro-hack", @@ -925,6 +989,17 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a164bb2ceaeff4f42542bdb847c41517c78a60f5649671b2a07312b6e117549" +[[package]] +name = "http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-types" version = "2.4.0" @@ -976,6 +1051,15 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6854dd77ddc4f9ba1a448f487e27843583d407648150426a30c2ea3a2c39490a" +[[package]] +name = "input_buffer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" +dependencies = [ + "bytes", +] + [[package]] name = "itoa" version = "0.4.6" @@ -1257,7 +1341,7 @@ checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" dependencies = [ "maplit", "pest", - "sha-1", + "sha-1 0.8.2", ] [[package]] @@ -1595,6 +1679,19 @@ dependencies = [ "opaque-debug 0.2.3", ] +[[package]] +name = "sha-1" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpuid-bool", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + [[package]] name = "sha1" version = "0.6.0" @@ -1850,6 +1947,25 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +[[package]] +name = "tungstenite" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +dependencies = [ + "base64", + "byteorder", + "bytes", + "http", + "httparse", + "input_buffer", + "log", + "rand", + "sha-1 0.9.1", + "url", + "utf-8", +] + [[package]] name = "typenum" version = "1.12.0" @@ -1908,6 +2024,12 @@ dependencies = [ "serde", ] +[[package]] +name = "utf-8" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" + [[package]] name = "vec-arena" version = "0.5.2" diff --git a/Cargo.toml b/Cargo.toml index f1896d1..2e694cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,8 @@ edition = "2018" [dependencies] async-std = { version = "~1.6.1", features = ["attributes"] } +async-tungstenite = "~0.8.0" +futures = "~0.3.5" glob = "~0.3.0" handlebars = { version = "~3.4.0", features = ["dir_source"] } log = "~0.4.11" diff --git a/assets/board.png b/assets/board.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc073fcb63925e110c0a7a9f7d8d285e081efd2 GIT binary patch literal 8794 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%0AA61)Axm>;Geu3xpnbAQgi#}_Q$W|a@J*^{7ikm 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 diff --git a/src/main.rs b/src/main.rs index cf7cf9f..751f0d8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,33 +2,53 @@ extern crate serde_json; use async_std::task; +use async_std::net::{TcpListener, TcpStream}; +use futures::prelude::*; use glob::glob; use handlebars::Handlebars; use log::*; use rodio::Source; +use serde::Deserialize; use tide::{Body, Request, StatusCode}; use std::fs::File; use std::io::BufReader; +#[derive(Debug, Deserialize)] +struct Query { + admin: String, +} async fn index(req: Request<()>) -> Result { let mut hb = Handlebars::new(); - hb.register_templates_directory(".hbs", "views") - .expect("Failed to register templates"); + + if let Err(failure) = hb.register_templates_directory(".hbs", "views") { + error!("Failed to render: {:?}", failure); + return Err(tide::Error::from_str(StatusCode::InternalServerError, "Could not render templates")) + } + + let mut admin = false; + if let Ok(query) = req.query::() { + info!("admin: {:?}", query); + admin = query.admin == "rtyler"; + } let mut sounds = vec![]; for sound in glob("sounds/*.wav").expect("Failed to glob sounds") { if let Ok(sound) = sound { if let Some(name) = sound.as_path().file_stem() { - sounds.push(name.to_os_string().into_string().unwrap()); + // factory whistle is a special admin only sound ^_^ + if name != "factorywhistle" { + sounds.push(name.to_os_string().into_string().unwrap()); + } } } } info!("sounds: {:?}", sounds); - let view = hb.render("index", &json!({"sounds": sounds})) + let view = hb.render("index", + &json!({"sounds": sounds, "admin" : admin})) .expect("Failed to render"); let mut body = Body::from_string(view); body.set_mime("text/html"); @@ -48,6 +68,24 @@ async fn play(req: Request<()>) -> tide::Result { } } +async fn handle_websocket(stream: TcpStream) { + let addr = stream + .peer_addr() + .expect("connected streams should have a peer address"); + info!("Peer address: {}", addr); + + let ws_stream = async_tungstenite::accept_async(stream) + .await + .expect("Error during the websocket handshake occurred"); + + info!("New WebSocket connection: {}", addr); + + let (write, read) = ws_stream.split(); + read.forward(write) + .await + .expect("Failed to forward message") +} + #[async_std::main] async fn main() -> Result<(), tide::Error> { pretty_env_logger::init(); @@ -55,6 +93,19 @@ async fn main() -> Result<(), tide::Error> { let mut app = tide::new(); app.at("/play/:sound").post(play); app.at("/").get(index); + app.at("/assets").serve_dir("assets/"); + + task::spawn(async move { + let addr = "0.0.0.0:9078"; + // Create the event loop and TCP listener we'll accept connections on. + let try_socket = TcpListener::bind(&addr).await; + let listener = try_socket.expect("Failed to bind"); + info!("Listening on: {}", addr); + + while let Ok((stream, _)) = listener.accept().await { + task::spawn(handle_websocket(stream)); + } + }); Ok(app.listen("0.0.0.0:9077").await?) } diff --git a/views/index.hbs b/views/index.hbs index 2c1392f..1787ebf 100644 --- a/views/index.hbs +++ b/views/index.hbs @@ -1,16 +1,142 @@ Charcuterie + + - A sound board for Meet, get it? +
+
+ +
+ A sound board for Meet, get it? +
- {{#each sounds}} -
- -
- {{/each}} +
+
+
+
+ + +
+
+
+ + + + {{#if admin}} +
+ +
+ {{else}} + {{/if}} +