X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=rhawk;h=80de4ba1b902201ba2a0943e996eef0b1bdeae2e;hb=4c134e54897a8a945d74b2f94ba1afdbf327a249;hp=494ce05c9c9a25b485aad90d32c6f9bb6869d73a;hpb=fea361224974c34ff646f820272984dfe928a5e5;p=~andy%2Frhawk diff --git a/rhawk b/rhawk index 494ce05..80de4ba 100755 --- a/rhawk +++ b/rhawk @@ -7,9 +7,19 @@ # 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") @@ -18,37 +28,37 @@ BEGIN { } # 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) @@ -93,10 +103,9 @@ function email(to, from, subj, body, sendmail) } 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 @@ -107,14 +116,14 @@ BEGIN { pollchan = "#sfvlug" } _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 "); + #if (match(_line, _web_tba)) + # email("Brian "); 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 @@ -149,6 +158,19 @@ BEGIN { "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" } @@ -164,8 +186,79 @@ TO == NICK && /^\.?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 -FROM ~ OWNER && /^go go gadget woop/ { +AUTH == OWNER && /^go go gadget woop/ { for (i=20; i>0; i--) say(".delay " i " seconds; .woop " i) } @@ -201,6 +294,7 @@ TO == NICK && DST ~ /^#/ { #DST != "#sfvlug" && !(FROM in bots) && +CMD == "PRIVMSG" && MSG !~ /^\./ && /awk/ { say("Awk, awk, awk! I'm a bird!") @@ -287,7 +381,7 @@ FROM == "rhnoise" && load_mod { # delete user_scores #} # -#FROM == OWNER && length(user_scores) && +#AUTH == OWNER && length(user_scores) && #tolower($0) ~ /\/ { # for (_i=1; _i<=length(user_scores); _i++) # say(user_scores[_i]["user"] "--");