ketracel/src/ketracel.moon

44 lines
1.2 KiB
Plaintext
Raw Normal View History

2019-12-24 15:29:08 +00:00
irce = require "irce"
socket = require "socket"
config =
2019-12-24 16:48:02 +00:00
server: os.getenv("IRC_HOST") or "127.0.0.1"
2019-12-24 21:22:15 +00:00
sname: os.getenv("KETRACEL_SNAME") or "ketracel.akua"
spass: os.getenv("KETRACEL_SPASS") or error("need KETRACEL_SPASS")
sreal: os.getenv("KETRACEL_SREAL") or "The favorite of the Jem'Hadar"
2019-12-24 15:47:29 +00:00
debug: os.getenv("KETRACEL_DEBUG")
2019-12-24 21:22:15 +00:00
nicklen: os.getenv("KETRACEL_NICKLEN") or "31"
2019-12-24 15:29:08 +00:00
irc = irce.new!
running = true
2019-12-24 15:47:29 +00:00
-- load IRC modules
2019-12-24 21:22:15 +00:00
assert irc\load_module require "irce.modules.ngircd"
assert irc\load_module require "bots.ketracel"
2019-12-24 15:29:08 +00:00
client = socket.tcp!
2019-12-24 15:47:29 +00:00
client\settimeout 1
2019-12-24 15:29:08 +00:00
irc\set_send_func (message) =>
client\send message
2019-12-24 15:47:29 +00:00
if config.debug
irc\set_callback irce.RAW, (send, message) =>
print string.format "%s %s", (send and ">" or "<"), message
2019-12-24 15:29:08 +00:00
2019-12-24 21:22:15 +00:00
print "Ketracel loaded using " .. irce._VERSION .. " running on " .. _VERSION
2019-12-24 15:29:08 +00:00
2019-12-24 15:47:29 +00:00
-- connect to irc server
2019-12-24 15:29:08 +00:00
assert client\connect config.server, 6667
2019-12-24 21:22:15 +00:00
assert irc\REGISTER config.spass, "ketracel", "0.0.1", config.sname, config.sreal, config.nicklen
2019-12-24 15:47:29 +00:00
2019-12-24 15:29:08 +00:00
if config.oper
2019-12-24 15:47:29 +00:00
irc\OPER config.nick, config.oper
print "IRC operator status requested for " .. config.nick
2019-12-24 15:29:08 +00:00
while running
irc\process client\receive!
client\close!