summaryrefslogtreecommitdiff
path: root/xkcd.sh
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2010-02-16 18:50:54 +0100
committerReiner Herrmann <reiner@reiner-h.de>2016-01-31 22:47:40 +0100
commit4e6f4c7bc55d0f9e0bbe43fea8f75456bcc0db38 (patch)
treeffda396171a1b6ab27fd15430404ff701f59680c /xkcd.sh
added xkcd download script
Diffstat (limited to 'xkcd.sh')
-rwxr-xr-xxkcd.sh56
1 files changed, 56 insertions, 0 deletions
diff --git a/xkcd.sh b/xkcd.sh
new file mode 100755
index 0000000..5311434
--- /dev/null
+++ b/xkcd.sh
@@ -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
+