]> Pileus Git - ~andy/rhawk/commitdiff
Fix topic parsing and cleanup globals
authorAndy Spencer <andy753421@gmail.com>
Thu, 25 Apr 2013 16:08:24 +0000 (16:08 +0000)
committerAndy Spencer <andy753421@gmail.com>
Thu, 25 Apr 2013 16:12:22 +0000 (16:12 +0000)
irc.awk
rhawk

diff --git a/irc.awk b/irc.awk
index fe94a958f0d75a5f9d7c1b862e92596f175cd3c2..c162c3e153d290f08998ad306b23d16f1fb8cef6 100644 (file)
--- a/irc.awk
+++ b/irc.awk
@@ -179,11 +179,11 @@ CMD == "PING" {
 }
 
 CMD == "332" {
-       CMD = "TOPIC"
+       TOPICS[ARG[2]] = MSG
 }
 
 CMD == "TOPIC" {
-       topics[DST] = MSG
+       TOPICS[ARG[1]] = MSG
 }
 
 # Authentication
@@ -192,6 +192,8 @@ CMD == "319" {
        gsub(/[@+]/, "")
        for (i=1; i<=NF; i++)
                send("WHO " $i " %uhnar")
+       for (i=1; i<=NF; i++)
+               send("TOPIC " $i)
 }
 
 CMD == "ACCOUNT" {
diff --git a/rhawk b/rhawk
index 30e0f34deba493761d1f2b6582d7156b90ceb608..74dae3896037e507a2bc7cea0417acef12c19f52 100755 (executable)
--- a/rhawk
+++ b/rhawk
@@ -103,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
@@ -121,10 +120,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