add a lua evalbot to the tests

master
jluehrs2 2007-09-04 23:27:14 -05:00
parent 9a62f261a0
commit 83ccc2d9cf
1 changed files with 42 additions and 0 deletions

42
test/luabot.lua Normal file
View File

@ -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}