#!/bin/sh if test $# -ne 2 then printf "Usage: %s infile outfile\n" "$0" >&2 exit 1 fi # Escape sed -E 's,&,\&\;,g;s,<,\<\;,g;s,>,\>\;,g' "$1" | # Remove joins/parts/quits sed -E '/^(..:..) -!- ([^ ]+).*has joined \#[^ ]*$/d' | sed -E '/^(..:..) -!- ([^ ]+).*has quit \[[^]]*\]$/d' | sed -E '/^(..:..) -!- ([^ ]+).*has left \#[^ ]* \[[^]]*\]$/d' | # Speak nick changes specially sed -E 's,^(..:..) -!- ([^ ]+) is now known as ([^ ]+)$,\1 \2 became \3,' | # Speak day changes specially sed -E 's,^ --- (Day changed .*)$,\1,' | # Speak timestaps and nicks specially sed -E 's,^(..:..) \<\;.?([^& ]+)\>\;,\1 \2,' | sed -E 's,^(..:..) \* ([^ ]+),\1 action \2,' | # Handle "<-" and "←" answers sed -E 's,\<-|←,answer,' | # Handle someone quoting another person sed -E 's,\<\;.?([^& ]+)\>\;,quoting \1,g' | sed -E 's,\* ([^ ]+),quoting action \1,g' | # Handle URLs sed -E 's,(https?|gopher)://[^ )>]+, \1 URL,g' | # Handle some common emoticons sed -E 's,\^_\^,happy eyes emoticon,g' | sed -E 's,\\o\/,arms in air emoticon,g' | sed -E 's,o\/,arm in air emoticon,g' | sed -E 's,\\o,arm in air emoticon,g' | sed -E 's,\:\),smiling emoticon,g' | sed -E 's,\(\:,reversed smiling emoticon,g' | sed -E 's,\:\(,sad emoticon,g' | sed -E 's,\)\:,reversed sad emoticon,g' | # Add pauses sed -E 's,$,,' | # Translate to actual tags sed -E 's,,,g;s,,,g' | # Speak espeak --stdin --stdout --punct='"“”' -m | # Convert to mp3 ffmpeg -i /dev/stdin -f mp3 "$2"