Paste Description for Something
Just a little bash podcatcher I'm working on. Wordpress.com didn't like some of the code, so I'm putting it here.
- Something
- Thursday, April 5th, 2007 at 3:59:29pm MDT
- #!/bin/sh
- # Created by Lehman Black - http://dosnlinux.wordpress.com
- # podthingy - the podcatching thingy
- # name suggestions welcome ;)
- CWD=`pwd`
- # TODO: make an "unlistened" folder
- # TODO: integrate into SVN repo
- # podcasts should be stored in separate folders under $PODCAST_ROOT
- # each podcast directory should have a *.list and *.info file
- # sample info file
- #PODCAST="The Java Posse"
- #TOPIC="Java news"
- #HOMEPAGE="http://javaposse.com"
- #FEED="http://feeds.feedburner.com/javaposse"
- #LICENSE="Creative Commons"
- #ALBUM="The Java Posse"
- #ARTIST="Tor Norbye, Carl Quinn, Joe Nuxoll, Dick Wall"
- #GENRE="Podcast"
- # end info file
- PODCAST_ROOT=$HOME
- # make sure it works on folders only
- for PODCAST in $PODCAST_ROOT/*/
- do
- if ! [ -f $PODCAST/*.info ]
- then
- # skip if this is not a podcast directory
- continue
- fi
- INFO_FILE=$PODCAST/*.info
- LIST_FILE=$PODCAST/*.list
- PODNAME=`grep PODCAST $INFO_FILE | cut -d \" -f2`
- echo "Podcast: $PODNAME"
- echo
- # preserve origional *.list until everything's finished downloading
- TMP=`mktemp -t podcast.XXXXXX`
- cat $LIST_FILE > $TMP
- echo -e "\tScanning feed for new episodes..."
- echo
- FEED=`grep FEED $INFO_FILE | cut -d \" -f2`
- FEED_ITEMS=`wget -q -O - $FEED | \
- awk -F '<' '/url=/{print $NF}' | \
- grep 'url=' | \
- sed -e 's/.*url=\"//' \
- -e 's/\".*//'`
- NEW_ITEMS=""
- for NEW in $FEED_ITEMS
- do
- if ! ( grep -q $NEW $LIST_FILE )
- then
- echo -e "\tNEW: $NEW"
- NEW_ITEMS="$NEW_ITEMS $NEW"
- fi
- done
- # TODO count number of new episodes
- # skip if there are no podcasts to download
- if [ -z `echo $NEW_ITEMS | tr -d '[:space:]'` ]
- then
- echo "Podcast up to date"
- echo
- rm $TMP
- continue
- fi
- echo
- # download the new episodes
- for EPISODE in $NEW_ITEMS
- do
- echo -ne "\tDownloading $EPISODE... "
- wget --random-wait -q -c $EPISODE -P $PODCAST
- echo $EPISODE >> $TMP
- echo "Done."
- done
- # put the most recent podcast at the beginning -- hopefully
- echo -e "\tUpdating list file"
- sort -r $TMP > $LIST_FILE
- rm $TMP
- echo
- echo "Podcast up to date"
- echo
- done
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.