From: jluehrs2 Date: Wed, 5 Sep 2007 04:27:14 +0000 (-0500) Subject: add a lua evalbot to the tests X-Git-Tag: 0.03~9 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=83ccc2d9cf062e510a724b18f2e8e518e68838cb;p=luairc.git add a lua evalbot to the tests --- 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}