From 383e61763387cb09280e525b865aa2c62f4d8642 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 9 Oct 2017 13:49:32 +0200 Subject: convert.sh new for converting wee chat logs to irc-logbot logs --- convert.sh | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 convert.sh diff --git a/convert.sh b/convert.sh new file mode 100755 index 0000000..6c54371 --- /dev/null +++ b/convert.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +dir='/srv/arch-mirror/arch/arch/archlinux32/irc-logs/#archlinux-ports/' + +declare -A colors + +sed ' + s/([^()]*@[^()]*) // +' | \ +sed ' + :a + $!N + s/\n\s\+ | / / + ta + P + D +' | \ +while read -r a b dummy c; do + if [ "${dummy}" != '|' ]; then + >&2 printf 'wrong dummy "%s"\n' "${dummy}" + exit 42 + fi + time=$( + date -d@$(($(date -d"${a}" +%s)+3600*6)) +%T + ) + if [ "${b}" = '-->' ]; then + name="${c%% *}" + channel="${c##* }" + printf '[%s] -!- %s has joined %s\n
\n' \ + "${time}" "${time}" "${time}" "${name}" "${channel}" + continue + fi + if [ "${b}" = '<--' ]; then + name="${c%% *}" + reason="${c##* (}" + reason="${reason%)*}" + printf '[%s] -!- %s has quit [%s]\n
\n' \ + "${time}" "${time}" "${time}" "${name}" "${reason}" + continue + fi + if [ -z "${colors["${b}"]}" ]; then + colors["${b}"]=$( + find "${dir}" -type f -name '*-*-*.html' -exec \ + grep -h "style=\"color:#[0-9a-f]\{6\}\"><${b}>" {} \; | \ + sed 's@.* style="color:#\([0-9a-f]\{6\}\)"><.*@\1@' | \ + sort -u + ) + fi + if [ -z "${colors["${b}"]}" ]; then + >&2 printf 'unkown user "%s"\n' "${b}" + exit 42 + fi + if [ $(echo "${colors["${b}"]}" | wc -l) -ne 1 ]; then + >&2 printf 'user "%s" has multiple colors\n' "${b}" + exit 42 + fi + printf '[%s] <%s> %s\n
\n' \ + "${time}" "${time}" "${time}" "${colors["${b}"]}" "${b}" "${c}" +done -- cgit v1.2.3-70-g09d2