+ delete nounicode[FROM]
+ json_save("var/nounicode.json", nounicode);
+}
+
+/[Cc]olors :-?\(/ {
+ nocolor[FROM] = 1
+ json_save("var/nocolor.json", nocolor);
+}
+
+/[Cc]olors :-?\)/ {
+ delete nocolor[FROM]
+ json_save("var/nocolor.json", nocolor);
+}
+
+# SFV Lug
+function email(to, from, subj, body, sendmail)
+{
+ from = NICK "<andy@pileus.org>"
+ subj = "Update sfvlug.org!"
+ body = "The next SFVLUG meeting is TBA!"
+ sendmail = "/usr/sbin/sendmail '" to "'"
+ print "To: " to | sendmail
+ print "From: " from | sendmail
+ print "Subject: " subj | sendmail
+ print "" | sendmail
+ print body | sendmail
+ say("Topic out of date, emailing " to);
+ close(sendmail)
+}
+
+BEGIN { pollchan = "#sfvlug" }
+(CMD == "PING" && systime()-lastpoll > 60*60*24) ||
+(CMD == "PRIVMSG" && /^\.poll/) {
+ if (!TOPICS[pollchan]) {
+ debug("Unknown topic for " pollchan);
+ send("TOPIC " pollchan)
+ next
+ }
+ _curl = "curl -s http://sfvlug.org/"
+ _day = "(Sun|Mon|Tue|Wed|Thu|Fri|Sat)"
+ _web_tba = "next meeting is: TBA"
+ _web_ptrn = "next meeting.*" _day "\\w+[, ]+([A-Z]\\w+) +([0-9]+)[, ]+([0-9]+)"
+ _irc_ptrn = _day "\\w*[, ]+([A-Z]\\w+) +([0-9]+)"
+ while (_curl | getline _line) {
+ #if (match(_line, _web_tba))
+ # email("Brian <brian@zimage.com>");
+ if (match(_line, _web_ptrn, _parts)) {
+ _date = _parts[1] " " _parts[2] " " _parts[3]
+ _topic = TOPICS[pollchan]
+ sub(_irc_ptrn, _date, _topic)
+ if (_topic != TOPICS[pollchan])
+ topic(pollchan, TOPICS[pollchan] = _topic)
+ else
+ debug("topic is already correct")
+ break
+ }
+ }
+ lastpoll = systime()
+ close(_curl)
+}
+
+# Versin/Uptime
+function head(cmd, var) {
+ cmd | getline var
+ close(cmd)
+ return var
+}
+function uptime(time, fmt) {
+ fmt = "%d:%02d:%02d:%02d"
+ fmt = "%d days %02d:%02d:%02d"
+ return sprintf(fmt,
+ time / (60*60*24),
+ time / (60*60 ) % 24,
+ time / (60 ) % 60,
+ time / (1 ) % 60)
+}
+BEGIN {
+ up_version = head("git describe --always --dirty")
+ up_author = head("git log -n1 --format=format:%an")
+ up_message = head("git log -n1 --format=format:%s")
+ up_reload = systime();
+}
+/^\.(version|rev)/ {
+ say("version: " up_version " - " up_author " - " up_message)
+}
+/^\.uptime/ {
+ _now = systime();
+ say("uptime: " uptime(_now - START) ", " \
+ "reload: " uptime(_now - up_reload))
+}
+
+# Auth info
+/^\.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)