]> Pileus Git - ~andy/rhawk/blobdiff - rhawk
Add joins
[~andy/rhawk] / rhawk
diff --git a/rhawk b/rhawk
index a0774999f85cba2694a77adab4d67d24ac31cdab..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)
@@ -66,11 +69,35 @@ CMD == "NICK" && FROM in bots {
        plain[FROM] = 0
 }
 
+# SFV Lug
+BEGIN { pollchan = "#sfvlug" }
+(CMD == "PING"    && systime()-lastpoll > 60*60*24) ||
+(CMD == "PRIVMSG" && DST == pollchan && /^\.poll/) {
+       if (!topics[pollchan]) {
+               debug("Unknown topic for " pollchan);
+               next
+       }
+       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]+)"
+       irc = day "\\w*[, ]+([A-Z]\\w+) +([0-9]+)"
+       while (cmd | getline line) {
+               if (match(line, web, arr)) {
+                       new = arr[1] " " arr[2] " " arr[3]
+                       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)
@@ -92,7 +119,7 @@ TO == NICK && DST ~ /^#/ {
 
 !(FROM in bots) &&
 MSG !~ /^\./ &&
-/\<awk\>/ {
+/awk/ {
        say("Awk, awk, awk! I'm a bird!")
 }