]> Pileus Git - ~andy/rhawk/blobdiff - rhawk
Add joins
[~andy/rhawk] / rhawk
diff --git a/rhawk b/rhawk
index 62b5207de40a1506e6f3bcdda7eca19f7d38af7a..f879b3a6e64b17efb6a1d5f26860cf4b3f7f3446 100755 (executable)
--- a/rhawk
+++ b/rhawk
@@ -7,6 +7,9 @@
 BEGIN {
        OWNER = "andy753421"
        connect("localhost", "rhawk", "#rhtest");
+       join("#rhnoise")
+       join("#rhspades")
+       join("#sfvlug")
 }
 
 # Admin
@@ -40,7 +43,7 @@ FROM == OWNER && TO == NICK && /^\.msg/ {
 }
 
 # Kick handling
-CMD == "KICK" {
+CMD == "KICK" && ARG == NICK {
        kick_delay = (kick_delay + 2) * 2
        system("sleep " kick_delay)
        join(DST)
@@ -67,12 +70,13 @@ CMD == "NICK" && FROM in bots {
 }
 
 # SFV Lug
-(systime()-lastpoll > 60*60*24 && CMD == "PING") ||
-(/^\.poll/ && DST == "#sfvlug" && CMD == "PRIVMSG") {
-       chan = "#sfvlug"
-       if (!topics[chan])
+BEGIN { pollchan = "#sfvlug" }
+(CMD == "PING"    && systime()-lastpoll > 60*60*24) ||
+(CMD == "PRIVMSG" && DST == pollchan && /^\.poll/) {
+       if (!topics[pollchan]) {
+               debug("Unknown topic for " pollchan);
                next
-       lastpoll = systime()
+       }
        cmd = "curl -s http://sfvlug.org/"
        day = "(Sun|Mon|Tue|Wed|Thu|Fri|Sat)"
        web = "next meeting.*" day "\\w+[, ]+([A-Z]\\w+) +([0-9]+)[, ]+([0-9]+)"
@@ -80,19 +84,20 @@ CMD == "NICK" && FROM in bots {
        while (cmd | getline line) {
                if (match(line, web, arr)) {
                        new = arr[1] " " arr[2] " " arr[3]
-                       sub(irc, new, topics[chan])
-                       topic(topics[chan])
-                       next
+                       sub(irc, new, topics[pollchan])
+                       topic(pollchan, topics[pollchan])
+                       break
                }
        }
+       lastpoll = systime()
+       close(cmd)
 }
 
-
 # Fortune
-TO == NICK && /^/             { extra = ""   }
-TO == NICK && /^.fortune.*-o/ { extra = "-o" }
-TO == NICK && /^.fortune/     {
-       gsub(/.*\.fortune *|-[a-z]* *|[^a-zA-Z0-9 ]/, "", MSG)
+TO == NICK && /^/                 { extra = ""   }
+TO == NICK && /^\.?fortune.*-o/ { extra = "-o" }
+TO == NICK && /^\.?fortune/     {
+       gsub(/.*\.?fortune *|-[a-z]* *|[^a-zA-Z0-9 ]/, "", MSG)
        cmd = "fortune " extra " " (MSG ? "-m '" MSG "'" : "-s")
        while (cmd | getline _fortune && lines < 5) {
                say(_fortune)
@@ -114,7 +119,7 @@ TO == NICK && DST ~ /^#/ {
 
 !(FROM in bots) &&
 MSG !~ /^\./ &&
-/\<awk\>/ {
+/awk/ {
        say("Awk, awk, awk! I'm a bird!")
 }