diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/factoids/mod.rs | 6 | ||||
| -rw-r--r-- | src/plugins/factoids/sandbox.lua | 28 |
2 files changed, 30 insertions, 4 deletions
diff --git a/src/plugins/factoids/mod.rs b/src/plugins/factoids/mod.rs index aeb83b0..d67416f 100644 --- a/src/plugins/factoids/mod.rs +++ b/src/plugins/factoids/mod.rs @@ -201,7 +201,7 @@ impl<T: Database> Factoids<T> { factoid }; - server.send_privmsg(&command.target, &value) + server.send_privmsg(&command.target, &value.replace("\n", "|").replace("\r", "")) } } @@ -221,7 +221,7 @@ impl<T: Database> Factoids<T> { let lua = Lua::new(); let globals = lua.globals(); - globals.set("factoid", lua.load(code, Some(name))?)?; + globals.set("factoid", code)?; globals.set("args", args)?; globals.set("input", command.tokens.join(" "))?; globals.set("user", command.source.clone())?; @@ -231,7 +231,7 @@ impl<T: Database> Factoids<T> { lua.exec::<()>(LUA_SANDBOX, Some(name))?; let output: Vec<String> = globals.get::<_, Vec<String>>("output")?; - Ok(output.join("|").replace("\n", "|")) + Ok(output.join("|")) } fn invalid_command(&self, server: &IrcServer, command: &PluginCommand) -> Result<(), IrcError> { diff --git a/src/plugins/factoids/sandbox.lua b/src/plugins/factoids/sandbox.lua index 9b4f52e..4e6b53e 100644 --- a/src/plugins/factoids/sandbox.lua +++ b/src/plugins/factoids/sandbox.lua @@ -1 +1,27 @@ -factoid() +function send(text) + len = #output + if len < 1 then + output = { text } + else + output[len] = output[len] .. text + end +end + +function sendln(text) + sendtoirc(text) + table.insert(output, "") +end + +local env = { print = send, + println = sendln, + args = args, + input = input, + user = user, + channel = channel, + pairs = pairs, + table = table, + string = string, + tostring = tostring, + math = math } + +load(factoid, nil, nil, env)() |
