New features for start.bas

This commit is contained in:
Rodrigo Rodriguez (Pragmatismo) 2025-10-13 18:11:03 -03:00
parent 3aeb3ebc70
commit a8f52451c5
2 changed files with 43 additions and 38 deletions

View file

@ -119,7 +119,10 @@ pub fn talk_keyword(state: Arc<AppState>, user: UserSession, engine: &mut Engine
Ok(Dynamic::UNIT) Ok(Dynamic::UNIT)
}) })
.unwrap(); .unwrap();
}
pub fn set_user_keyword(state: Arc<AppState>, user: UserSession, engine: &mut Engine) {
let state_clone = Arc::clone(&state);
let user_clone = user.clone();
engine engine
.register_custom_syntax(&["SET_USER", "$expr$"], true, move |context, inputs| { .register_custom_syntax(&["SET_USER", "$expr$"], true, move |context, inputs| {
let user_id_str = context.eval_expression_tree(&inputs[0])?.to_string(); let user_id_str = context.eval_expression_tree(&inputs[0])?.to_string();
@ -155,8 +158,8 @@ pub fn talk_keyword(state: Arc<AppState>, user: UserSession, engine: &mut Engine
Ok(Dynamic::UNIT) Ok(Dynamic::UNIT)
}) })
.unwrap(); .unwrap();
}
pub fn set_context_keyword(state: &AppState, user: UserSession, engine: &mut Engine) { pub fn set_context_keyword(state: &AppState, user: UserSession, engine: &mut Engine) {
let cache = state.redis_client.clone(); let cache = state.redis_client.clone();
engine engine
@ -190,5 +193,4 @@ pub fn talk_keyword(state: Arc<AppState>, user: UserSession, engine: &mut Engine
Ok(Dynamic::UNIT) Ok(Dynamic::UNIT)
}) })
.unwrap(); .unwrap();
}
} }

View file

@ -12,7 +12,9 @@ use self::keywords::first::first_keyword;
use self::keywords::for_next::for_keyword; use self::keywords::for_next::for_keyword;
use self::keywords::format::format_keyword; use self::keywords::format::format_keyword;
use self::keywords::get::get_keyword; use self::keywords::get::get_keyword;
use self::keywords::hear_talk::{hear_keyword, set_context_keyword, talk_keyword}; use self::keywords::hear_talk::{
hear_keyword, set_context_keyword, set_user_keyword, talk_keyword,
};
use self::keywords::last::last_keyword; use self::keywords::last::last_keyword;
use self::keywords::llm_keyword::llm_keyword; use self::keywords::llm_keyword::llm_keyword;
use self::keywords::on::on_keyword; use self::keywords::on::on_keyword;
@ -59,6 +61,7 @@ impl ScriptService {
hear_keyword(state.clone(), user.clone(), &mut engine); hear_keyword(state.clone(), user.clone(), &mut engine);
talk_keyword(state.clone(), user.clone(), &mut engine); talk_keyword(state.clone(), user.clone(), &mut engine);
set_context_keyword(&state, user.clone(), &mut engine); set_context_keyword(&state, user.clone(), &mut engine);
set_user_keyword(state.clone(), user.clone(), &mut engine);
#[cfg(feature = "web_automation")] #[cfg(feature = "web_automation")]
get_website_keyword(&state, user.clone(), &mut engine); get_website_keyword(&state, user.clone(), &mut engine);