From: Andy Spencer Date: Mon, 23 Jan 2012 06:56:41 +0000 (+0000) Subject: better X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;ds=sidebyside;h=4a493c999598c03a4f3c0b67a9d48e47f721347f;p=~andy%2Frhawk better --- diff --git a/irc.awk b/irc.awk index 0681885..84b88f4 100644 --- a/irc.awk +++ b/irc.awk @@ -41,6 +41,7 @@ function set() { debug("DST: " DST) debug("FROM: " FROM) debug("TO: " TO) + debug("ARG: " ARG) debug("MSG: " MSG) } @@ -108,14 +109,15 @@ function reload() { # Input parsing // { - match($0, /(:([^ ]+) +)?(([A-Z0-9]+) +)(([^ ]+) +)?([^:]*:(.*))/, arr); + match($0, /(:([^ ]+) +)?(([A-Z0-9]+) +)(([^ ]+) +)?(([^: ]+) +)?(:(.*))/, arr); gsub(/\s+/, " ", arr[8]) gsub(/^ | $/, "", arr[8]) gsub(/\3[0-9]*/, "", arr[8]) SRC = arr[2] CMD = arr[4] DST = arr[6] - MSG = arr[8] + ARG = arr[8] + MSG = arr[10] match(SRC, /([^! ]+)!/, arr); FROM = arr[1] @@ -137,7 +139,11 @@ CMD == "PING" { send("PING " MSG) } -CMD == "332" || +CMD == "332" { + CMD = "TOPIC" + DST = ARG +} + CMD == "TOPIC" { topics[DST] = MSG } diff --git a/rhawk b/rhawk index 62b5207..8dedf6a 100755 --- a/rhawk +++ b/rhawk @@ -40,7 +40,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,25 +67,26 @@ CMD == "NICK" && FROM in bots { } # SFV Lug -(systime()-lastpoll > 60*60*24 && CMD == "PING") || -(/^\.poll/ && DST == "#sfvlug" && CMD == "PRIVMSG") { - chan = "#sfvlug" - if (!topics[chan]) - 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]+)" - 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[chan]) - topic(topics[chan]) - next - } - } -} +#pollchan = "#sfvlug" +#(CMD == "PING" && systime()-lastpoll > 60*60*24) || +#(CMD == "PRIVMSG" && DST == pollchan && /^\.poll/) { +# if (!topics[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 diff --git a/testirc.txt b/testirc.txt index 7508afa..bd23691 100644 --- a/testirc.txt +++ b/testirc.txt @@ -1,2 +1,3 @@ -:andy753421!~a@c.d TOPIC #sfvlug :San Fernando Valley Linux Users Group | Meeting: Sat January 21, 6:00pm Denny's Van Nuys | Website: www.sfvlug.org & Wiki: http://tinyurl.com/tabrr & Meetup: http://meetup.com/sfvlug | Knowledge is power. http://tinyurl.com/2xr7sd -:andy753421!~a@c.d PRIVMSG #sfvlug :.poll +:hitchcock.freenode.net 332 rhawk #rhnoise : ooh, an occupy austin mariachi is going on outside +:andy753421!~andy@rhlug/a KICK #rhnoise beausoleil :beausoleil +:andy753421!~andy@rhlug/a KICK #rhnoise rhawk :rhawk