diff options
-rwxr-xr-x | show-irc-log | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/show-irc-log b/show-irc-log index 8ba667c..0986b21 100755 --- a/show-irc-log +++ b/show-irc-log @@ -9,20 +9,35 @@ curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/' \ t d ' \ -| sort \ -| tail -n4 \ -| while read -r s; do - curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/'"${s}"'.html' \ - | sed -n ' - s|^.* <span class="person" style="[^"]\+"><\([^&]\+\)></span>|\1 \|| - t ok - s|^.* <span class="person" style="[^"]\+">\* \(\S\+\) \(.*\)</span>.*$|\1 : \2| - t ok - T - :ok - p - ' - done \ +| sort -r \ +| { + lines_count=0 + while read -r s; do + lines=$( + curl -Ss 'https://mirror.archlinux32.org/irc-logs/%23archlinux32/'"${s}"'.html' \ + | sed -n ' + s|^.* <span class="person" style="[^"]\+"><\([^&]\+\)></span>|\1 \|| + t ok + s|^.* <span class="person" style="[^"]\+">\* \(\S\+\) \(.*\)</span>.*$|\1 : \2| + t ok + T + :ok + p + ' \ + | tac + ) + if [ -z "${lines}" ]; then + continue; + fi + lines_count=$((lines_count + $(printf '%s\n' "${lines}" | wc -l))) + printf '%s\n' "${lines}" + if [ "${lines_count}" -ge 30 ]; then + cat >/dev/null + break + fi + done +} \ +| tac \ | tail -n30 \ > "${tmp_dir}/input" |