From 83ccc2d9cf062e510a724b18f2e8e518e68838cb Mon Sep 17 00:00:00 2001 From: jluehrs2 Date: Tue, 4 Sep 2007 23:27:14 -0500 Subject: add a lua evalbot to the tests --- test/luabot.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 test/luabot.lua 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} -- cgit v1.2.3-54-g00ecf