]> Pileus Git - ~andy/rhawk/blobdiff - rhawk
Clear score at startup
[~andy/rhawk] / rhawk
diff --git a/rhawk b/rhawk
index a1c210d092ccfe93c800482058c83f26eca2c0a5..48fb2fab0e7ad3368df7bc65e5970edb10bd1e53 100755 (executable)
--- a/rhawk
+++ b/rhawk
@@ -9,7 +9,7 @@
 BEGIN {
        json_load("var/login.json",     login);
        json_load("var/nounicode.json", nounicode);
-       json_load("var/nocolor.json",   nocolors);
+       json_load("var/nocolor.json",   nocolor);
 
        OWNER = login["owner"];
 
@@ -22,7 +22,7 @@ BEGIN {
        delete login
 
        if (FIRST) {
-               join("#rhnoise")
+               join("#rhtest")
                join("#rhspades")
                join("#sfvlug")
        }
@@ -145,6 +145,11 @@ BEGIN { pollchan = "#sfvlug" }
 }
 
 # 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"
@@ -155,13 +160,13 @@ function uptime(time,  fmt) {
                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();
@@ -197,6 +202,16 @@ TO == NICK && /^\.?fortune/     {
        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["/"      ] = " "
@@ -344,6 +359,15 @@ FROM == "rhnoise" && $2 == "slaps" && $3 == NICK {
        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)
@@ -374,29 +398,47 @@ FROM == "rhnoise" && 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;
+       delete user_scores
+}
+
+/^\.(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("") }