Mittwoch, Juni 13, 2007

Papierloses Cachen für Arme

1. LOC-Datei
Auf der Seite geocaching.com habe ich einen Cache im Zielgebiet gesucht und mir dann alle noch nicht gefundenen Caches im Umkreis anzeigen lassen.
Das Suchergebnis erstreckt sich leider über meherere Seiten. Wenn man jeweils alle Caches einer Seite markiert und sich dann die LOC-Datei herunterlädt, hat man am Ende mehrere LOC-Dateien, die man anschließend vereinigt (XML-Header nur am Anfang, schließendes Tag nur am Ende).

2. Cache-Beschreibungen herunterladen.
Die LOC-Datei wird nun so editiert (ggf. Makro aufzeichnen), dass nur noch die Waypoints übrigbleiben, jeder Waypoint auf einer Zeile. Vor und hinter jeden Waypoint kommt nun ein Teil der URL, die eine geeignete Cachebeschreibung abruft. http://www.geocaching.com/seek/cache_details.aspx?wp=GC13587&pf=y&log=y&decrypt=y
zeigt z.B. den Cache GC13587 in der Druckvorschauf mit Logs und mit entschlüsselten Hints.
Man hat nun eine Datei mit URLs.
Im Browser öffnet man nun die geocaching.com-Seite und loggt sich ein. Dabei aktiviert man die Option "remember me" - wodurch ein Cookie gespeichert wird.
Diesen Cookie benötigt man für die Anmeldung beim Herunterladen mit wget.

wget --load-cookies ~/.mozilla/firefox/sy8aujzo.default/cookies.txt -i file_of_urls -o gnulog

lädt nun alle URLs aus file_of_urls herunter. Es schreibt ein Log in gnulog und verwendet die Cookies von firefox. Wo die cookies.txt liegt kann man vorher mit find -name "cookies.txt" herausfinden.

Die Dateien, die dabei für die einzelnen Caches angelegt werden, heißen wie die URLs.

3. Dateien umbenennen
Da die Dateien Sonderzeichen im Namen haben und sich so nicht auf einer vfat-formatierten SD-Karte abspeichern lassen - müssen sie umbenannt werden.
Das ist nicht so einfach....
Da mir etwas die Kenntnisse der UNIX-Command-Shell fehlen - ist meine Lösung vielleicht nicht soooo elegant.
Zunächst habe ich an die Dateien ein ".htm" gehängt:
find -name "cache_details*" -exec mv {} {}.htm \;
Mit
for file in cache*;
do echo mv $file $file | sed "s/cache_details.aspx?wp=//2" | sed "s/&pf=y&log=y&decrypt=y//2";
done > script
habe ich dann eine Datei script erstellt, deren Zeilen so aussehen:
mv cache_details.aspx?wp=GCZ062&pf=y&log=y&decrypt=y.htm GCZ062.htm
Mit einem Editor habe ich dann ein #!/bin/sh an den Anfang der Datei gesetzt und die Datei mit chmod ug+x ausführbar gemacht.
Dann noch die Datei gestartet: ./script
- Führt noch zu Fehlermeldungen, aber nachdem alle "=", "?" und "&" im Script durch ein "\" escaped wurden - hat es dann funktioniert.
Und dann die Dateien auf die SD-Karte gespeichert und diese in den PDA befördert- Fertig! Fehlen nur die Spoilerbilder :-(

Labels: , ,

0 Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]

Links zu diesem Post:

Link erstellen

<< Startseite