Jump to content

mrrix32

Members
  • Posts

    2
  • Joined

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

mrrix32's Achievements

  1. fbcmd is a command line interface for Facebook (Probably deserves a segment!). Yesterday I saw the HakTip about Festival, a free TTS engine for Linux. I knew the two needed to be combined, so I made a bash script that reads out the latest post from your Facebook stream! (Skip to the bottom for the completed script) You Will Need: Festival fbcmd Getting Festival $ sudo apt-get install festival Getting FBCMD Follow the instructions here http://fbcmd.dtompkins.com/installation How I started (aka the one line version) fbcmd stream 0 1 | grep -v [#] | cut -d "]" -f 2- | festival --tts --pipe fbcmd stream 0 1 "fbcmd stream" gives you the latest 10 updates from your stream. The first argument is the "importance" level of the updates to be output, 0 means show all. The second argument is the number of updates to show. It also outputs a header row with column labels, we don't need this so.... grep -v [#] grep -v outputs everything except lines that contain the argument. In this case "[#]". If you look at the usual output of "fbcmd stream" it is a numbered list with a header row, the header row contains [#], which is unlikely to appear in anyone's status. cut -d "]" -f 2- In this case, cut is being used to take off the first few characters of the output (The numbering column). I don't think this is strictly the way cut is meant to be used, if anyone has a better way, let me know! festival --tts --pipe Uses TTS to read out everything that is piped into it! But I've already heard that update! (aka. the long version) After I got all this working, I thought it would be better to only read out the update if it hadn't been read before (So it could be used on a timer, to give updates once a minute for example, but only if there is a new one) #!/bin/bash # Gets latest update from Facebook stream echo `fbcmd stream 0 1 | grep -v [#]` >> .facebook1 # Check to see if script has been run before if [ -a .facebook2 ] then # If it has it checks to see if this status is different FILE1=`cat .facebook1` FILE2=`cat .facebook2` if [ "$FILE1" == "$FILE2" ] then festival --tts .facebook1 fi else festival --tts .facebook1 fi # Moves status to a secondary file to be checked next time mv .facebook1 .facebook2 Ending stuff I'm not very advanced at bash script writing, so creative criticism is welcomed! Have a look at what you can do with fbcmd, the script could easily be modified to read out notifications etc instead.
×
×
  • Create New...