Skip to content

Instantly share code, notes, and snippets.

@ncfavier
Last active October 31, 2019 15:30
Show Gist options
  • Save ncfavier/1756b7d53bf2049dbd12ad6023baaaa0 to your computer and use it in GitHub Desktop.
Save ncfavier/1756b7d53bf2049dbd12ad6023baaaa0 to your computer and use it in GitHub Desktop.
Convert ZNC logs to WeeChat logs (in French)
#!/usr/bin/env bash
channel=$1
while read -rd ' ' time && read -rd ' ' event && IFS= read -r message; do
time=${time#[} time=${time%]}
case $event in
'***')
if [[ $message =~ ^(.*)' is now known as '(.*)$ ]]; then
event='*'
message="${BASH_REMATCH[1]} est maintenant connu sous le nom ${BASH_REMATCH[2]}"
elif [[ $message =~ ^(.*)' was kicked by '(.*)' '(.*)$ ]]; then
event='←'
message="${BASH_REMATCH[2]} a éjecté ${BASH_REMATCH[1]} ${BASH_REMATCH[3]}"
elif [[ $message =~ ^(.*)' sets mode: '(.*)' '*$ ]]; then
event='*'
message="Mode $channel [${BASH_REMATCH[2]}]"
[[ ${BASH_REMATCH[1]} == Server ]] || message+=" par ${BASH_REMATCH[1]}"
elif [[ $message =~ ^(.*)' changes topic to '\'(.*)\'$ ]]; then
event='*'
message="${BASH_REMATCH[1]} a changé le titre pour $channel en \"${BASH_REMATCH[2]}\""
else
continue
fi
;;
'*')
event=' *'
;;
'<'*'>')
event=${event#<}
event=${event%>}
;;
-*-)
sender=${event#-}
sender=${sender%-}
event='*'
message="$sender: $message"
;;
*)
continue
;;
esac
printf '%s\t%s\t%s\n' "$time" "$event" "$message"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment