#!awk -f
@include "irc.awk"
+@include "json.awk"
@include "spades.awk"
#@include "email.awk"
# Initialization
BEGIN {
- OWNER = "andy753421"
- connect("localhost", "rhawk", "#rhtest");
+ json_load("var/login.json", login);
+ json_load("var/plain.json", plain);
+
+ OWNER = login["owner"];
+
+ connect(login["server"], \
+ login["nick"], \
+ login["channel"], \
+ login["auth"], \
+ login["pass"])
+
+ delete login
+
if (FIRST) {
join("#rhnoise")
join("#rhspades")
}
# Admin
-FROM == OWNER && TO == NICK && /^die in a fire/ {
+AUTH == OWNER && TO == NICK && /^die in a fire/ {
say("Ack, argh, barasdjf..")
quit()
}
-FROM == OWNER && TO == NICK && /^reload/ {
+AUTH == OWNER && TO == NICK && /^reload/ {
say("Reloading..")
reload()
}
-FROM == OWNER && TO == NICK && /^rejoin/ {
+AUTH == OWNER && TO == NICK && /^rejoin/ {
reply("joining..")
join("#rhnoise")
next
}
-FROM == OWNER && TO == NICK && /^(join|part)/ {
- match(MSG, /(join|part) +(#+\w+)/, arr)
- if (arr[1] && arr[2]) {
- send(toupper(arr[1]) " " arr[2]);
+AUTH == OWNER && TO == NICK && /^(join|part)/ {
+ if (match(MSG, /(join|part) +(#+\w+)/, arr)) {
+ if (arr[1] == "join") join(arr[2]);
+ if (arr[1] == "part") part(arr[2]);
next
}
}
-FROM == OWNER && TO == NICK && /^\.msg/ {
+AUTH == OWNER && TO == NICK && /^\.msg/ {
match(MSG, /.*\.msg +(#*\w+) +(.*)/, arr)
send("PRIVMSG " arr[1] " :" arr[2])
}
# Kick handling
-CMD == "KICK" && ARG == NICK {
+CMD == "KICK" && ARG[2] == NICK {
kick_delay = (kick_delay + 2) * 2
system("sleep " kick_delay)
join(DST)
# Unicode
/[Uu]nicode :-?\(/ {
plain[FROM] = 1
+ json_save("var/plain.json", plain);
}
/[Uu]nicode :-?\)/ {
- plain[FROM] = 0
+ delete plain[FROM]
+ json_save("var/plain.json", plain);
}
# SFV Lug
}
BEGIN { pollchan = "#sfvlug" }
-#(CMD == "TOPIC" && systime()-lastpoll > 60*60*24) ||
(CMD == "PING" && systime()-lastpoll > 60*60*24) ||
(CMD == "PRIVMSG" && /^\.poll/) {
- if (!topics[pollchan]) {
+ if (!TOPICS[pollchan]) {
debug("Unknown topic for " pollchan);
send("TOPIC " pollchan)
next
_web_ptrn = "next meeting.*" _day "\\w+[, ]+([A-Z]\\w+) +([0-9]+)[, ]+([0-9]+)"
_irc_ptrn = _day "\\w*[, ]+([A-Z]\\w+) +([0-9]+)"
while (_curl | getline _line) {
- if (match(_line, _web_tba))
- email("Brian <brian@zimage.com>");
+ #if (match(_line, _web_tba))
+ # email("Brian <brian@zimage.com>");
if (match(_line, _web_ptrn, _parts)) {
_date = _parts[1] " " _parts[2] " " _parts[3]
- _topic = topics[pollchan]
+ _topic = TOPICS[pollchan]
sub(_irc_ptrn, _date, _topic)
- if (_topic != topics[pollchan])
- topic(pollchan, topics[pollchan] = _topic)
+ if (_topic != TOPICS[pollchan])
+ topic(pollchan, TOPICS[pollchan] = _topic)
else
debug("topic is already correct")
break
"reload: " uptime(_now - up_reload))
}
+# Auth info
+/^\.auth/ {
+ _who = $2 ? $2 : FROM
+ if (_who in USERS)
+ say("nick=" USERS[_who]["nick"] " " \
+ "user=" USERS[_who]["user"] " " \
+ "auth=" USERS[_who]["auth"] " " \
+ "real=" USERS[_who]["real"] " " \
+ "host=" USERS[_who]["host"])
+ else
+ say("no auth info for " _who)
+}
+
# Fortune
TO == NICK && /^/ { extra = "" }
TO == NICK && /^\.?fortune.*-o/ { extra = "-o" }
}
# Noise
-FROM ~ OWNER && /^go go gadget woop/ {
+AUTH == OWNER && /^go go gadget woop/ {
for (i=20; i>0; i--)
say(".delay " i " seconds; .woop " i)
}
#DST != "#sfvlug" &&
!(FROM in bots) &&
+CMD == "PRIVMSG" &&
MSG !~ /^\./ &&
/awk/ {
say("Awk, awk, awk! I'm a bird!")
# delete user_scores
#}
#
-#FROM == OWNER && length(user_scores) &&
+#AUTH == OWNER && length(user_scores) &&
#tolower($0) ~ /\<nuclear launch detected\>/ {
# for (_i=1; _i<=length(user_scores); _i++)
# say(user_scores[_i]["user"] "--");