From a5a45fa1f03d4396a6449b772daf30b57730a02c Mon Sep 17 00:00:00 2001 From: deadvey Date: Thu, 14 May 2026 23:34:11 +0100 Subject: [PATCH] version & fixed some clippy linting --- report.odt | Bin 13997 -> 14640 bytes server/Cargo.lock | 2 +- server/Cargo.toml | 10 ++++++++-- server/src/api.rs | 20 ++++++++++++-------- server/src/character.rs | 4 +--- server/src/main.rs | 2 +- server/src/parsing.rs | 9 +++++---- server/src/parsing/character_parse.rs | 9 +++++---- server/src/parsing/strings.rs | 7 +------ stories/characters.json | 1 - stories/test.zip | Bin 635 -> 628 bytes 11 files changed, 34 insertions(+), 30 deletions(-) diff --git a/report.odt b/report.odt index eefef77e132f23724f7ecf0e45530c7b2e3344c3..adf9b533cc405c9d97cfaf4b2bbd4b7af6c65056 100644 GIT binary patch delta 12166 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 RC^^}5a)X&V8F2>URm&ydv-o-5FkKRNM*`F{H) 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 diff --git a/server/Cargo.lock b/server/Cargo.lock index c752ae0..e873a43 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -457,7 +457,7 @@ dependencies = [ [[package]] name = "happening-server" -version = "0.1.0" +version = "0.0.2" dependencies = [ "env_logger", "log", diff --git a/server/Cargo.toml b/server/Cargo.toml index 43f666a..5e67b23 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,7 +1,13 @@ [package] name = "happening-server" -version = "0.1.0" +version = "0.0.2" edition = "2024" +license = "GPL-3" +repository = "https://git.javalsai.tuxcord.net/deadvey/happening/" +readme = "../README.md" +keywords = ["interactive", "storytelling", "server"] +categories = ["parsing", "games"] +description = "Server for happening: an interactive storytelling game" [lints.clippy] cargo = { level = "warn", priority = -1 } @@ -14,7 +20,7 @@ option_if_let_else = { level = "allow" } pedantic = { level = "deny", priority = -1 } perf = { level = "deny", priority = -1 } style = { level = "deny", priority = -1 } -unwrap_used = "deny" +unwrap_used = "warn" [dependencies] env_logger = "0.11.10" diff --git a/server/src/api.rs b/server/src/api.rs index 5bee681..b741011 100644 --- a/server/src/api.rs +++ b/server/src/api.rs @@ -62,17 +62,21 @@ pub async fn api_process .and(characters_filter) .map(|name: String, characters: Arc>>| { - let characters = match characters.lock() + let reply = { - Ok(data) => data, - Err(poisoned) => + let characters = match characters.lock() { - warn!("Character Mutex is poisoned"); - poisoned.into_inner() - }, + Ok(data) => data, + Err(poisoned) => + { + warn!("Character Mutex is poisoned"); + poisoned.into_inner() + }, + }; + characters.get(&name).cloned() }; - let Some(reply) = characters.get(&name) - else + + let Some(reply) = reply else { warn!("Client requested character that does not exist"); return warp::reply::json(&json!({"reply": "invalid character"})); diff --git a/server/src/character.rs b/server/src/character.rs index 2b7d601..adf6883 100644 --- a/server/src/character.rs +++ b/server/src/character.rs @@ -9,7 +9,7 @@ use crate::{ Mutex, Arc, }; -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct Character { name: String, @@ -20,7 +20,6 @@ pub struct Character pronoun_deppos: String, pronoun_indpos: String, pronoun_reflex: String, - animation: String, head: String, hair: String, torso: String, @@ -42,7 +41,6 @@ impl Character { "pronoun_deppos" => self.pronoun_deppos = value.to_string(), "pronoun_indpos" => self.pronoun_indpos = value.to_string(), "pronoun_reflex" => self.pronoun_reflex = value.to_string(), - "animation" => self.animation = value.to_string(), "head" => self.head = value.to_string(), "hair" => self.hair = value.to_string(), "torso" => self.torso = value.to_string(), diff --git a/server/src/main.rs b/server/src/main.rs index 65c28df..55a4f08 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -121,7 +121,7 @@ async fn main() let data_clone2 = Arc::clone(&data_to_send); let characters_clone2 = Arc::clone(&characters); // Run the parsing process for the DSL - match parsing::token_parse(&tokens, characters_clone2, &data_clone2, &rx) + match parsing::token_parse(&tokens, &characters_clone2, &data_clone2, &rx) { // Exit with error or success Ok(()) => diff --git a/server/src/parsing.rs b/server/src/parsing.rs index b33240b..6cc2baf 100644 --- a/server/src/parsing.rs +++ b/server/src/parsing.rs @@ -21,7 +21,7 @@ mod character_parse; // Returns success or an error string pub fn token_parse( tokens: &Vec<&str>, - characters: Arc>>, + characters: &Arc>>, data_to_send: &Arc>, rx: &Receiver<(bool,usize)>, ) -> Result<(),String> @@ -48,7 +48,7 @@ pub fn token_parse( let character_name: String = token.chars().skip(1).collect(); debug!("Doing something with a character: {character_name}"); // The index is incremented to after the character's instructions - index = match character_parse::character_parse(index+1, tokens, character_name, &characters, &data_to_send) + index = match character_parse::character_parse(index+1, tokens, character_name, characters, data_to_send) { Ok(increment) => increment, Err((err,increment)) => @@ -70,12 +70,12 @@ pub fn token_parse( }, "choice" => { - let (_,jump_points) = match choice_parse(index+1, tokens, &data_to_send) + let (_,jump_points) = match choice_parse(index+1, tokens, data_to_send) { Ok((increment,jump_point)) => (increment,jump_point), Err(error) => return Err(error), }; - if rx.recv().is_err() { warn!("Error sending choices to client"); }; + if rx.recv().is_err() { warn!("Error sending choices to client"); } let (_, choice) = match rx.recv() { Ok((_,choice)) => (None::, choice), @@ -151,5 +151,6 @@ fn choice_parse data.content = String::new(); data.character = String::new(); data.choices = choices; //TODO + drop(data); Ok((sum_index + 1, choice_indeces)) } diff --git a/server/src/parsing/character_parse.rs b/server/src/parsing/character_parse.rs index d298c71..5067b89 100644 --- a/server/src/parsing/character_parse.rs +++ b/server/src/parsing/character_parse.rs @@ -48,6 +48,7 @@ pub fn character_parse data.content = output_string; data.character = character_name; data.choices = vec![]; + drop(data); }, None => return Err(("Unable to read output string".to_string(), sum_index)), } @@ -69,14 +70,14 @@ pub fn character_parse info!("CHANGE command with character {character_name} feature {feature}"); let mut characters = characters.lock().expect("Data cannot be unlocked"); if let Some(character) = characters.get_mut(&character_name) - { - if character.set_field(feature, &output_string) - .is_err() { warn!("Feature {feature} does not exist") }; - } + && character.set_field(feature, &output_string) + .is_err() { warn!("Feature {feature} does not exist") } + drop(characters); let mut data = data_to_send.lock().unwrap(); // TODO eh? data.action_type = String::from("change"); data.content = String::new(); data.character = character_name; + drop(data); }, // Catch all condition, if the instruction is unrecognised as a // character command diff --git a/server/src/parsing/strings.rs b/server/src/parsing/strings.rs index ce42ff7..6545911 100644 --- a/server/src/parsing/strings.rs +++ b/server/src/parsing/strings.rs @@ -23,10 +23,10 @@ pub fn extract_quoted(parts: &[&str]) for part in parts { counter += 1; + vec_string.push(*part); // End of the string if part.ends_with('\"') // TODO allow for backslashes and ' { - vec_string.push(*part); let final_string: String = vec_string.join(" "); let final_string: String = final_string .chars() @@ -37,11 +37,6 @@ pub fn extract_quoted(parts: &[&str]) .collect(); return Some((final_string, counter)); } - // Otherwise just add this to the list - else - { - vec_string.push(*part); - } } None } diff --git a/stories/characters.json b/stories/characters.json index c120f30..5580eb9 100644 --- a/stories/characters.json +++ b/stories/characters.json @@ -9,7 +9,6 @@ "pronoun_deppos": "His", "pronoun_indpos": "His", "pronoun_reflex": "Himself", - "animation": "", "head": "", "hair": "", "torso": "", diff --git a/stories/test.zip b/stories/test.zip index 2fed764632d65b7a182ff60b759d3f44bb1db9bb..a14af52b4198307983bf6800092e7b3eb6957d50 100644 GIT binary patch delta 310 zcmey(@`a^7z?+#xgn@y9gQ0NCx|rUu?FO3}7#R8)85sB(WEhe&5{nX(OHzx9^|Ffd z^Fl*78JJZa*s?&lw1S&~k>v$50|S^SonXj!Sb@hi-NNH*yeI)M`8J~_ld8jHHYRJPKMa$dnT*(WGcqtRFaQ8^s&3T) delta 308 zcmeyu@|&eTz?+#xgn@y9gW=cWbum}7{w?0cz`(GGk%57qL53kYBe5tkxg@oySTCzM zKQAZZBc!9{PN!Ld#&?24xauz z=>@}Vi{oc}B|YLQGIg?zw){HTEZ8^gbBjrWWZNrFQ~d{AmWz6i1W9Hcu;k)wmC4Nc zr^vsy@%#6~49k2Y7H;b@eRyph`_(s7F71BiV|PJq>h{?N7oMK)%QoJ*$?W4Csq&Lu zGfw_v_;_o>J0(|E!|uo$hKYYp^P+fv@)br+CUxb>{~4{Bm>DPAFd4BOVq{=oU;qFP Cbc3A$