From aa2e6dc0103c303aac0dd688d90c8547b22f8a47 Mon Sep 17 00:00:00 2001 From: Jokler Date: Sun, 29 Oct 2017 17:00:58 +0100 Subject: Add non Lua factoids Only factoids prefixed with '>' are run as Lua now. To escape the '>' just add another one. --- src/plugins/factoids/mod.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/plugins/factoids/mod.rs') diff --git a/src/plugins/factoids/mod.rs b/src/plugins/factoids/mod.rs index 68b02e3..c69042f 100644 --- a/src/plugins/factoids/mod.rs +++ b/src/plugins/factoids/mod.rs @@ -9,6 +9,8 @@ use std::sync::Mutex; use plugin::*; +static LUA_SANDBOX: &'static str = include_str!("sandbox.lua"); + #[derive(PluginName, Debug)] pub struct Factoids { factoids: Mutex>, @@ -23,8 +25,6 @@ macro_rules! try_lock { } } -static LUA_SANDBOX: &'static str = include_str!("sandbox.lua"); - impl Factoids { pub fn new() -> Factoids { Factoids { factoids: Mutex::new(HashMap::new()) } @@ -75,9 +75,19 @@ impl Factoids { None => return self.invalid_command(server, &command), }; - let value = match self.run_lua(&name, factoid, &command) { - Ok(v) => v, - Err(e) => format!("{}", e), + let value = if factoid.starts_with(">") { + let factoid = String::from(&factoid[1..]); + + if factoid.starts_with(">") { + factoid + } else { + match self.run_lua(&name, &factoid, &command) { + Ok(v) => v, + Err(e) => format!("{}", e), + } + } + } else { + String::from(factoid) }; server.send_privmsg(&command.target, &value) -- cgit v1.2.3-70-g09d2