#!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
}
}
lastpoll = systime()
- close(cmd)
+ close(_curl)
}
-# Uptime
+# Versin/Uptime
function uptime(time, fmt) {
fmt = "%d:%02d:%02d:%02d"
fmt = "%d days %02d:%02d:%02d"
time / (1 ) % 60)
}
BEGIN {
+ _cmd = "git describe --always --dirty";
+ _cmd | getline up_version;
+ close(_cmd);
up_reload = systime();
}
+/^\.version/ {
+ say("version: " up_version)
+}
/^\.uptime/ {
_now = systime();
say("uptime: " uptime(_now - START) ", " \
"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!")
say("scalawag: You slag!")
}
+(DST == "#rhnoise" && /^\.qdb 268$/) {
+ say(".diediedie");
+ next
+}
+(DST == "#rhnoise" && /\.qdb *268/) {
+ say(".slap " FROM);
+ next
+}
+
+# Decrementer
+#BEGIN {
+# user_scores[0] = 1
+#}
+#
+#FROM == "rhnoise" && !length(user_scores) {
+# if (split(MSG, _parts, /, /)) {
+# for (_i=1; _i<=length(_parts); _i++) {
+# split(_parts[_i], _tmp, ": ");
+# user_scores[_i]["user"] = _tmp[1];
+# user_scores[_i]["score"] = _tmp[2];
+# }
+# }
+#}
+#
+#FROM == "rhnoise" && /^User Scores:$/ {
+# delete 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"] "--");
+#}
+
# Misc
{ fflush("") }