Send updates to live cycling news reports to the speech synth

The BBC coverage of the UCI Women Road Race World Championship wasn’t starting until 3pm, BBC Radio 5 Live had football and Sports Extra was playing an advert loop (really BBC?), Eurosport wasn’t covering the race at all, RAI Sport 2 had coverage which was fine while I was watching the TV, but my Italian isn’t good enough to follow the commentary and I wanted to get some other stuff done.

So the obvious thing is to have the computer watch for changes to the great http://live.cyclingnews.com/ ticker and read them out, right? Well, it was to me. Here’s the script I used:

#!/usr/bin/rc
# Send updates to live cycling news reports to the speech synth

# initialise
url=http://live.cyclingnews.com/
if (~ $1 *:*) {
  url=$1
}
last=""

while (true) {
    # download the update and strip html - if you don't have html2text try
    # sed -e '1,/<ol/d;s/<br[^>]*>/n/g;s/<[^>]*>//g;s/ / /g;s/[[:space:]]*$//'
    next=``(){curl -s $url | html2text -width 9999 | sed -e 's/^ *[0-9]*. //' }
    # look for some added lines in the update section - timezone will need changing for non-European races
    say=``(){diff -u <{echo $last} <{echo $next} 
      | sed -ne '/^+/!d;s///;s/**//g;/ CES*T/,/^ *$/p' | head -9 }
    # feed them to the speech synth in reverse order
    echo $say '
      Race Update' | tac | spd-say -e
    # update variables, pause and loop
    last=$next
    # set this to a prime number over 60, like 61, 67, 71, 73, 79, 83, 89
    sleep 67
}

Any questions, comments or improvements? I could have done more, like not saying “Race Update” even when there was no update, but I wanted to start listening as soon as possible!

This entry was posted in GNU/Linux. Bookmark the permalink.

4 Responses to Send updates to live cycling news reports to the speech synth

  1. Ano says:

    What’s the use of a prime number for the sleep function? 62 doesn’t fit?

  2. mjr says:

    I use different prime numbers for the sleep so that when the script becomes insanely popular and we’re all using it, it should maximise the intervals between traffic surges from script hits… it’s really just a habit.

  3. lamby says:

    That’s odd, I watched it on BBC “Red Button” since kilometer zero.

  4. mjr says:

    Even for the women’s race on the Saturday, lamby? Red Button was showing MotoGP when I tried, on both Freeview and Freesat.

Leave a Reply

Your email address will not be published. Required fields are marked *




* Copy this password:

* Type or paste password here:

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>