#!/usr/bin/env sh # CGI script to get irc logs from scoop. Powers https://irclogs.armaanb.net. channel=$(echo "$PATH_INFO" | awk -F / '{print $2}') if [ -z "$channel" ]; then echo "Content-type: text/plain ================= acheam's IRC logs ================= logged channels --------------- $(awk '{print " * " $0}' /etc/scoop-cgi/channels) $(awk '{print " * " $0}' /etc/scoop-cgi/logbot) url format ---------- /channel/date date is optional, and defaults to the current day source ------ https://git.armaanb.net/bin/tree/scoop-cgi it's in the public domain!" exit 0 fi time=$(echo "$PATH_INFO" | awk -F / -v date="$(date -I)" ' {($3 != "" ) ? outp = $3 : outp = date; print outp}' | xargs date -I -d) all=$(cat /etc/scoop-cgi/channels /etc/scoop-cgi/logbot) channel=$(echo "$all" | grep -x "$channel") if [ -z "$channel" ]; then echo "Status: 404" printf "Content-type: text/plain\n\n" echo "404. Channel not logged." exit 0 fi printf "Content-type: text/plain\n\n" if grep -qx "$channel" /etc/scoop-cgi/channels; then db=$(cat /etc/scoop-cgi/database) PAGER=/dev/tty scoop -d "$db" -p "$channel" -D "$time" \ -F "%Y-%m-%d %H:%M:%S" \ | awk '{$1=""; print substr($0, 2, length($0) - 1)}' elif grep -qx "$channel" /etc/scoop-cgi/logbot; then awk -v date="$time" 'substr($1, 0, 11) == date {outp = substr($1, 12); for (i = 3; i <= NF; i++) outp = outp " " $i; print outp}' \ "/srv/www/scoop-cgi/$channel" fi