# Initialization
BEGIN {
- json_load("var/login.json", login);
- json_load("var/plain.json", plain);
+ json_load("var/login.json", login);
+ json_load("var/nounicode.json", nounicode);
+ json_load("var/nocolor.json", nocolor);
OWNER = login["owner"];
delete login
if (FIRST) {
- join("#rhnoise")
+ join("#rhtest")
join("#rhspades")
join("#sfvlug")
}
}
AUTH == OWNER && TO == NICK && /^(join|part)/ {
- match(MSG, /(join|part) +(#+\w+)/, arr)
- if (arr[1] && arr[2]) {
- send(toupper(arr[1]) " " arr[2]);
+ if (match(MSG, /(join|part) +(#+\w+)/, arr)) {
+ if (arr[1] == "join") join(arr[2]);
+ if (arr[1] == "part") part(arr[2]);
next
}
}
}
-# Unicode
+# Fancy output
/[Uu]nicode :-?\(/ {
- plain[FROM] = 1
- json_save("var/plain.json", plain);
+ nounicode[FROM] = 1
+ json_save("var/nounicode.json", nounicode);
}
/[Uu]nicode :-?\)/ {
- delete plain[FROM]
- json_save("var/plain.json", plain);
+ delete nounicode[FROM]
+ json_save("var/nounicode.json", nounicode);
+}
+
+/[Cc]olors :-?\(/ {
+ nocolor[FROM] = 1
+ json_save("var/nocolor.json", nocolor);
+}
+
+/[Cc]olors :-?\)/ {
+ delete nocolor[FROM]
+ json_save("var/nocolor.json", nocolor);
}
# SFV Lug
}
# Versin/Uptime
+function head(cmd, var) {
+ cmd | getline var
+ close(cmd)
+ return var
+}
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();
+ up_version = head("git describe --always --dirty")
+ up_author = head("git log -n1 --format=format:%an")
+ up_message = head("git log -n1 --format=format:%s")
+ up_reload = systime();
}
-/^\.version/ {
- say("version: " up_version)
+/^\.(version|rev)/ {
+ say("version: " up_version " - " up_author " - " up_message)
}
/^\.uptime/ {
_now = systime();
next
}
+/\<[Bb][Oo][Ff][Hh]\>/ {
+ _cmd = "fortune bofh-excuses"
+ _cmd | getline _fortune
+ _cmd | getline _fortune
+ _cmd | getline _fortune
+ close(_cmd)
+ say(_fortune)
+ next
+}
+
+# Morse code
+BEGIN {
+ morse["/" ] = " "
+ morse[".-.-.-" ] = "."
+ morse["--..--" ] = ","
+ morse["..--.." ] = "?"
+ morse[".----." ] = "'"
+ morse["-.-.--" ] = "!"
+ morse["-..-." ] = "/"
+ morse["-.--." ] = "("
+ morse["-.--.-" ] = ")"
+ morse[".-..." ] = "&"
+ morse["---..." ] = ":"
+ morse["-.-.-." ] = ";"
+ morse["-...-" ] = "="
+ morse[".-.-." ] = "+"
+ morse["-....-" ] = "-"
+ morse["..--.-" ] = "_"
+ morse[".-..-." ] = "\""
+ morse["...-..-"] = "$"
+ morse[".--.-." ] = "@"
+ morse[".-" ] = "a"
+ morse["-..." ] = "b"
+ morse["-.-." ] = "c"
+ morse["-.." ] = "d"
+ morse["." ] = "e"
+ morse["..-." ] = "f"
+ morse["--." ] = "g"
+ morse["...." ] = "h"
+ morse[".." ] = "i"
+ morse[".---" ] = "j"
+ morse["-.-" ] = "k"
+ morse[".-.." ] = "l"
+ morse["--" ] = "m"
+ morse["-." ] = "n"
+ morse["---" ] = "o"
+ morse[".--." ] = "p"
+ morse["--.-" ] = "q"
+ morse[".-." ] = "r"
+ morse["..." ] = "s"
+ morse["-" ] = "t"
+ morse["..-" ] = "u"
+ morse["...-" ] = "v"
+ morse[".--" ] = "w"
+ morse["-..-" ] = "x"
+ morse["-.--" ] = "y"
+ morse["--.." ] = "z"
+ morse["-----" ] = "0"
+ morse[".----" ] = "1"
+ morse["..---" ] = "2"
+ morse["...--" ] = "3"
+ morse["....-" ] = "4"
+ morse["....." ] = "5"
+ morse["-...." ] = "6"
+ morse["--..." ] = "7"
+ morse["---.." ] = "8"
+ morse["----." ] = "9"
+}
+
+/^\.morse/ {
+ gsub(/[^.\-\/]/, " ")
+ _str = ""
+ for (i=2; i<=NF; i++)
+ if ($i in morse)
+ _str = _str morse[$i]
+ if (_str)
+ reply(_str)
+ else
+ reply("hush it, you pile of bologna")
+}
+
# Noise
AUTH == OWNER && /^go go gadget woop/ {
for (i=20; i>0; i--)
say("THE LARCH");
}
+/(for what|that for)\?$/ {
+ say("For great justice!");
+}
+
+/\<nazi/ {
+ say("And now it's...");
+ say("Springtime for Hitler and Germany!");
+}
+
# God damn commands
FROM == "rhnoise" && load_mod {
say(".load " load_mod)
}
# 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"] "--");
-#}
+BEGIN {
+ user_scores[0] = 1;
+}
+
+/^\.(scores|scoreboard)$/ {
+ delete user_scores
+}
+
+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];
+ }
+ }
+}
+
+length(user_scores) &&
+tolower($0) ~ /\<nuclear launch detected\>/ {
+ _count = 0;
+ for (_i=1; _i<=length(user_scores); _i++) {
+ _user = user_scores[_i]["user"];
+ _score = user_scores[_i]["score"];
+ if (_user in USERS) continue
+ if (_score == 1) { say(_user "--"); _count++; }
+ if (_score == -1) { say(_user "++"); _count++; }
+ }
+ if (_count) {
+ delete user_scores;
+ say(".scores");
+ } else {
+ say("looks like you're safe.. for now..");
+ }
+}
+
+# Vote relay
+DST != "#rhnoise" && /\<[a-zA-Z0-9_]{3,16}(\+\+|--)/ {
+ say("#rhnoise", "(" DST ") " FROM ": " MSG);
+}
# Misc
{ fflush("") }