Compare commits

...

2 Commits

Author SHA1 Message Date
zoe ab7785ed00 add comments and logic for joining 2022-01-30 22:40:51 +01:00
zoe f62dfca066 aeeieieuie 2022-01-30 14:56:58 +01:00
3 changed files with 44 additions and 6 deletions

View File

@ -17,12 +17,17 @@ lazy_static! {
static ref ROOMS: Mutex<HashMap<String, rooms::Room>> = Mutex::new(HashMap::new()); static ref ROOMS: Mutex<HashMap<String, rooms::Room>> = Mutex::new(HashMap::new());
} }
/*
* Config options
*/
#[derive(Parser, Debug)] #[derive(Parser, Debug)]
#[clap(about, version, author)] #[clap(about, version, author)]
struct Args { struct Args {
// Port number for server // Port number for server
#[clap(short, long, default_value_t = 8000)] #[clap(short, long, default_value_t = 8000)]
port: u16, port: u16,
// this is here so that it shows up in help, it's actually used in templates.rs
// sucks
#[clap(short, long, default_value = "http://127.0.0.1:8000")] #[clap(short, long, default_value = "http://127.0.0.1:8000")]
base_url: String, base_url: String,
} }
@ -37,6 +42,9 @@ fn rocket() -> _ {
.mount("/", routes![index, room]) .mount("/", routes![index, room])
} }
/*
* handles creating rooms, player counts and
*/
#[get("/?<roomname>")] #[get("/?<roomname>")]
async fn index(mut roomname: String) -> Template { async fn index(mut roomname: String) -> Template {
// remove whitespace from roomname // remove whitespace from roomname
@ -72,7 +80,31 @@ async fn index(mut roomname: String) -> Template {
} }
} }
/*
* handles requests for joining rooms and returns the real room page if token and room combination
* is correct
*/
#[get("/room?<roomname>&<token>&<player1>")] #[get("/room?<roomname>&<token>&<player1>")]
async fn room(roomname: &str, token: usize, player1: bool) -> String{ async fn room(roomname: &str, token: usize, player1: bool) -> Template {
"hey gamer".to_string() // lock room list mutex, don't forget to drop again
let rooms = ROOMS.lock().unwrap();
if rooms.contains_key(roomname) {
let room = rooms.get(roomname).unwrap();
// the room is real and the token is correct
if room.token == token {
drop(rooms);
//TODO: placeholder
templates::get_back_to_home("cool!")
}
// the room is real but the token is incorrect
else {
drop(rooms);
templates::get_back_to_home("illegalroom")
}
}
// the room doesn't exist
else {
drop(rooms);
templates::get_back_to_home("illegalroom")
}
} }

View File

@ -10,7 +10,7 @@
* { * {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
body, body,
html { html {
@ -67,14 +67,15 @@ footer {
align-self: center; align-self: center;
min-height: 90%; min-height: 90%;
justify-content: center; justify-content: center;
width: 100%; width: 90%;
max-width: 900px;
} }
button, button,
.contentdiv *, .contentdiv *,
a, a,
p { p {
line-height: 1.84em; line-height: 48pt;
border-radius: 0.48em; border-radius: 0.48em;
font-size: 24pt; font-size: 24pt;
margin-top: 0.5em; margin-top: 0.5em;
@ -93,6 +94,11 @@ input {
width: 90%; width: 90%;
} }
form {
width: 100%;
justify-content: center;
}
input { input {
cursor: text; cursor: text;
} }

View File

@ -22,7 +22,7 @@
class="{{hide_url_button}}" class="{{hide_url_button}}"
href="{{url_button_url}}" href="{{url_button_url}}"
type="button" type="button"
>{{url_button_url}}</a> >copy url</a>
<a href={{link_url}}>{{link}}</a> <a href={{link_url}}>{{link}}</a>
</div> </div>
<footer> <footer>