aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2007-09-04 23:27:14 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2007-09-04 23:27:14 -0500
commit83ccc2d9cf062e510a724b18f2e8e518e68838cb (patch)
tree4aeb393b78f8646368d4e3964564f383e121559b
parent9a62f261a0f848f385f5a944d07086a46b6a3809 (diff)
downloadluairc-83ccc2d9cf062e510a724b18f2e8e518e68838cb.tar.gz
luairc-83ccc2d9cf062e510a724b18f2e8e518e68838cb.zip
add a lua evalbot to the tests
-rw-r--r--test/luabot.lua42
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}