irc-bot/contrib/newmont

71 lines
1.6 KiB
Lua
Executable File

#! /usr/bin/lua
--
-- Set global variables from environment
--
prefix = os.getenv("prefix")
forum = os.getenv("forum")
sender = os.getenv("sender")
command = os.getenv("command")
text = os.getenv("text")
--
-- Write text to stderr (for debugging)
--
function log(text)
io.stderr:write(text .. "\n")
end
--
-- Send a raw IRC command to the server
--
function raw(text)
log("< " .. text)
print(text)
end
--
-- Send a message to the forum; if we've sent 4 lines
-- already, start sending directly to the sender, to
-- avoid spamming channels.
--
msgs_sent = 0
msg_recip = forum
function msg(text)
msgs_sent = msgs_sent + 1
if ((msgs_sent == 5) and (forum ~= sender)) then
raw("PRIVMSG " .. forum .. " :Sending the rest in private")
msg_recip = sender
end
raw("PRIVMSG " .. msg_recip .. " :" .. text)
end
--
--
-- Main program
--
--
-- Log what we got
log(" > " .. (prefix or "") .. " " .. (sender or "-") .. "/" .. (forum or "-") .. " [" .. command .. "] :" .. (text or ""))
-- Our action depends on what the command is
if (command == "INIT") then
-- bot sends this when it first starts up, so we can log in
raw("NICK nemont")
raw("USER newmont newmont newmont :Sample bot")
elseif (command == "433") then
-- Couldn't get the nickname we asked for
raw("NICK bot_" .. (os.time() % 500))
elseif (command == "001") then
-- IRC server sends this after successful login
raw("JOIN #newmont")
elseif (command == "PRIVMSG") then
-- Somebody said something!
if (text:find("strawberry")) then
msg("Strawberries are delicious.")
end
end