]> Pileus Git - ~andy/rhawk/blobdiff - rhawk
Split plain into nounicode and nocolor
[~andy/rhawk] / rhawk
diff --git a/rhawk b/rhawk
index 30e0f34deba493761d1f2b6582d7156b90ceb608..a1c210d092ccfe93c800482058c83f26eca2c0a5 100755 (executable)
--- a/rhawk
+++ b/rhawk
@@ -7,8 +7,9 @@
 
 # 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",   nocolors);
 
        OWNER = login["owner"];
 
@@ -45,9 +46,9 @@ AUTH == OWNER && TO == NICK && /^rejoin/ {
 }
 
 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
        }
 }
@@ -75,15 +76,25 @@ CMD == "NICK" && FROM in bots {
 }
 
 
-# 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
@@ -103,10 +114,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
@@ -121,10 +131,10 @@ BEGIN { pollchan = "#sfvlug" }
                #       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
@@ -187,6 +197,77 @@ 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
 AUTH == OWNER && /^go go gadget woop/ {
        for (i=20; i>0; i--)