Adafruit Lerning PDFs Downloaden

Wir besitzen ja seit Neuestem eines dieser Tabs. Eigentlich für die Beifahrerin angeschafft, liegt es meistens nur herum. Gestern abend wollte ich im Bett noch ein paar Sachen auf der Adafruit Learning Seite lesen. Allerdings stellte sich heraus, dass unser WLAN nicht bis ins Schlafzimmer reicht!

Was tun?

Zum Glück gibts die Anleitungen dort auch als PDF Version. Ich habe mir also ein Script geschrieben, das die alle herunterlädt. Dann kann ich die bequem auf dem Galaxy Tab ohne WLAN lesen.

Hier ist das Script:

#!/usr/local/bin/bash

base=http://learn.adafruit.com

tmp="tmp.$$"

wget -O - $base/guides > $tmp

max=`grep -A 1 last-page $tmp | grep href | awk -F \" '{print $2}' | awk -F= '{print $2}'`

echo -n > $tmp

for N in `jot $max 1`; do
    wget -O - "$base/guides?guide_page=$N" >> $tmp
done

for guide in `grep -A 1 details $tmp | grep href | awk -F\" '{print $2}'`; do
    echo "${base}${guide}"
    pdfuri=`wget -O - "${base}${guide}" | grep "downloads/pdf" | head -1 | awk -F\" '{print $2}'`
    pdffile=`basename $pdfuri`
    wget -N "${base}${pdfuri}"
done

rm -f $tmp

Das Script ist allerdings mit Vorsicht zu genießen: es lädt ALLE PDFs herunter, das sind (im Moment) 133 MB. Allerdings habe ich es so geschrieben, dass man es mehrmals ausführen kann. Wenn ein PDF schon da ist, lädt er es nicht nochmal herunter, aber wenn es auf dem Server eine neue Version gibt, dann schon. Somit kann man das Script regelmäßig ausführen und die Sammlung aktualisieren. Voraussetzung ist natürlich, dass man die PDFs dort liegen lässt, wo man sie heruntergeladen hat.

Eine Einschränkung gibt es noch: das Script ist nur unter FreeBSD mit Bash lauffähig, weil es jot(1) verwendet. Eventuell fällt mir noch eine portable Methode ein, eine Liste von Zahlen zu erzeugen.


08.01.2013 18:24 CC0 arduino ebooks freebsd howto software Source

Ähnliche Beiträge:

Null Kommentar zu Adafruit Lerning PDFs Downloaden



Kommentieren:
Aus welchem Land kommen Sie?
Land*:
Ihr Kommentar erscheint erst, wenn wir ihn freigegeben haben!
Mit * markierte Felder sind Pflichtfelder.
Sofern Sie eine Emailadresse eingeben, wird diese automatisch nach einem Monat gelöscht.
Weitere Daten werden nicht aufgezeichnet.