diff options
Diffstat (limited to 'xkcd.sh')
| -rwxr-xr-x | xkcd.sh | 56 |
1 files changed, 56 insertions, 0 deletions
@@ -0,0 +1,56 @@ +#!/bin/sh +# +# downloads xkcd comics +# + +DOWNLOADDIR=$HOME/Ebooks/xkcd/ + +download_xkcd () +{ + NUMBER=$1 + + if [ `ls -1 | grep -c "^${NUMBER}_"` -gt 0 ] || [ $NUMBER -eq 404 ]; + then + return 0 + fi + + # LINE_URL may contain link to larger comic at beginning + LINE_URL=`wget http://xkcd.com/$NUMBER/ -q -O - | grep "<img src=.*title=.*alt="` + URL=`echo $LINE_URL | cut -d '"' -f 2` + LINE_IMG=`echo $LINE_URL | sed 's/.*\(<img src=.*\)/\1/'` + #TITLE=`echo $LINE_IMG | cut -d '"' -f 4` + #ALT=`echo $LINE_IMG | cut -d '"' -f 6` + + # url leads to an external site + if [ `echo $URL | grep -c "^http://imgs.xkcd.com/comics/"` -eq 0 ]; + then + URL=`echo $LINE_IMG | cut -d '"' -f 2` + fi + + FILENAME="${NUMBER}_`echo $URL | cut -d '/' -f 5`" + + echo -n "Downloading xkcd #$NUMBER" + wget $URL -q -O $FILENAME + # does not work with jpg + #mogrify -comment "$TITLE" $FILENAME + echo "." + + return 0 +} + + +if [ ! -d $DOWNLOADDIR ]; +then + echo "Creating download directory $DOWNLOADDIR" + mkdir -p $DOWNLOADDIR +fi + +cd $DOWNLOADDIR + +CURRENT=`wget http://xkcd.com/ -q -O - | grep "Permanent link to this comic: " | cut -d '/' -f 4` + +for i in `seq $CURRENT -1 1`; +do + download_xkcd $i +done + |
