X-Git-Url: http://pileus.org/git/?p=~andy%2Frhawk;a=blobdiff_plain;f=irc.awk;h=d4bb41e1f2dde228e23235a0e13ab57d0f114b01;hp=c06cc8e61b50edd128a168f7f4d26c3f2dfffd0d;hb=HEAD;hpb=01b0f57dae870f8dfc251e39aaa199b28bb07433 diff --git a/irc.awk b/irc.awk index c06cc8e..d4bb41e 100644 --- a/irc.awk +++ b/irc.awk @@ -137,9 +137,10 @@ function reload() { # Input parsing // { - gsub(/\s+/, " ") - gsub(/^ | $/, "") - gsub(/\3[0-9]*/, "") + gsub(/\s+/, " ") + gsub(/^ | $/, "") + gsub(/[\2\11\17\23\25\26\37]/, "") + gsub(/[\3\13](1[0-5]|0?[0-9])?(,(1[0-5]|0?[0-9]))?/, "") match($0, /(:([^ ]+) )?([A-Z0-9]+)(( [^:][^ ]*)*)( :(.*))?/, arr); sub(/^ /, "", arr[4]) SRC = arr[2] @@ -179,11 +180,11 @@ CMD == "PING" { } CMD == "332" { - CMD = "TOPIC" + TOPICS[ARG[2]] = MSG } CMD == "TOPIC" { - topics[DST] = MSG + TOPICS[ARG[1]] = MSG } # Authentication @@ -192,6 +193,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" { @@ -217,14 +220,11 @@ CMD == "JOIN" { USERS[FROM]["real"] = MSG } -/^\.auth/ { - _who = $2 ? $2 : FROM - if (_who in USERS) - say(" nick=" USERS[_who]["nick"] \ - " user=" USERS[_who]["user"] \ - " auth=" USERS[_who]["auth"] \ - " real=" USERS[_who]["real"] \ - " host=" USERS[_who]["host"]) - else - say("no auth info for " _who) +CMD == "NICK" { + USERS[MSG]["user"] = USERS[FROM]["user"] + USERS[MSG]["host"] = USERS[FROM]["host"] + USERS[MSG]["nick"] = MSG + USERS[MSG]["auth"] = USERS[FROM]["auth"] + USERS[MSG]["real"] = USERS[FROM]["real"] + delete USERS[FROM] }