diff options
author | jluehrs2 <jluehrs2@uiuc.edu> | 2007-09-04 23:27:14 -0500 |
---|---|---|
committer | jluehrs2 <jluehrs2@uiuc.edu> | 2007-09-04 23:27:14 -0500 |
commit | 83ccc2d9cf062e510a724b18f2e8e518e68838cb (patch) | |
tree | 4aeb393b78f8646368d4e3964564f383e121559b | |
parent | 9a62f261a0f848f385f5a944d07086a46b6a3809 (diff) | |
download | luairc-83ccc2d9cf062e510a724b18f2e8e518e68838cb.tar.gz luairc-83ccc2d9cf062e510a724b18f2e8e518e68838cb.zip |
add a lua evalbot to the tests
-rw-r--r-- | test/luabot.lua | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/luabot.lua b/test/luabot.lua new file mode 100644 index 0000000..6c9b43a --- /dev/null +++ b/test/luabot.lua @@ -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} |