add a lua evalbot to the tests
parent
9a62f261a0
commit
83ccc2d9cf
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env lua
|
||||
|
||||
local irc = require 'irc'
|
||||
irc.DEBUG = true
|
||||
|
||||
local nick = "luabot"
|
||||
local pre_code = [[
|
||||
io = nil
|
||||
os = nil
|
||||
loadfile = nil
|
||||
dofile = nil
|
||||
package = nil
|
||||
require = nil
|
||||
module = nil
|
||||
debug = nil
|
||||
]]
|
||||
|
||||
irc.register_callback("connect", function()
|
||||
irc.join("#doytest")
|
||||
end)
|
||||
|
||||
irc.register_callback("channel_msg", function(channel, from, message)
|
||||
local for_me, code = message:match("^(" .. nick .. ". )(.*)")
|
||||
if for_me then
|
||||
code = code:gsub("^=", "return ")
|
||||
local fn, err = loadstring(pre_code .. code)
|
||||
if not fn then
|
||||
irc.say(channel.name, from .. ": Error loading code: " .. err)
|
||||
return
|
||||
else
|
||||
local result = {pcall(fn)}
|
||||
local success = table.remove(result, 1)
|
||||
if not success then
|
||||
irc.say(channel.name, from .. ": Error running code: " .. result[1])
|
||||
else
|
||||
irc.say(channel.name, from .. ": " .. table.concat(result, ", "))
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
irc.connect{network = "irc.freenode.net", nick = nick}
|
Loading…
Reference in New Issue