Automatisierter Pocket Query Download

Pocket Queries die mehr als 500 Geocaches umfassen werden nicht wie sonst üblich per Mail zugesandt, sondern müssen direkt von geocaching.com heruntergeladen werden. Um diesen Vorgang zu automatisieren gibt es das kleine Tool PqDL von leoluk, das eben diese Aufgabe übernimmt. Bei diesem Tool handelt es sich um ein kleines Pythonscript, das aber auch als Windows-Executable vorliegt und somit plattformübergreifend verwendet werden kann. Einzig ein klitzekleines bißchen Erfahrung im Umgang mit kommandozeilenbasierter Software ist dazu notwendig.

PqDL wird im Terminal bzw. auf der Windows-Kommandozeile gestartet und bekommt dabei alle notwendigen Informationen und Optionen mitgeschickt. Um nicht jedesmal den ganzen Krempel tippen zu müssen kann man die Sache auch mit Hilfe kleiner Scripte vereinfachen. Ich verwende dafür folgendes Shellscript:

#!/bin/sh
# PQ-Download von geocaching.com
cd /home/$username/pfad/zum/zielverzeichnis
./.pqdl.py -u $username -p $password -j --journalfile=.pqdljournal

Wobei $username und $password natürlich angepasst sein müssen. Die Punkte vor den Namen von Script und Journal bewirken übrigens, das die Dateien versteckt sind. Das liegt in meinem Falle daran, das ich die PQs in ein Verzeichnis auf dem Desktop laden lasse und so schon vor dem Öffnen des Verzeichnisses sehe, ob und wieviele PQs sich darin befinden. Wären die Dateien nicht versteckt, würden sie immer mitgezählt. Windowsbenutzer sollten übrigens dem Journal noch eine Dateiendung, hier vornehmlich .txt verpassen, denn Windows erkennt den Dateityp ja lustigerweise immer an seiner Endung, während Linux halt einfach am mime-type erkennt, das es sich um Plain-Text handelt. Allerdings muß PqDL nicht unbedingt in dem Verzeichnis liegen, in das die PQs gespeichert werden sollen, alternativ kann auch ein gesondertes Zielverzeichnis mitgegeben werden. Ich selbst habe bloß immer gern alles an einem Ort was auch zusammengehört, bei vielerlei Scripten die sich so für den täglichen Bedarf anhäufen ist das einfach übersichtlicher.

Startet man nun dieses kleine Script, dann wird PqDL ausgeführt, lädt alle neuen PQs herunter und schreibt sie zusätzlich ins Journal, damit sie beim nächsten Lauf nicht erneut heruntergeladen werden. Zusätzlich könnte man noch den Schalter -r verwenden, der würde nach erfolgtem Download einen Löschbefehl senden, allerdings funktioniert das seit dem letzten Update bei geocaching.com nicht mehr und wird erst mit der nächsten Version von PqDL wieder nutzbar sein. Allerdings ist das auch nicht unbedingt notwendig, denn nach 7 Tagen werden die PQs automatisch gelöscht und alles was im Journal steht wird ja nicht erneut heruntergeladen.

Wenn man es sich nun ganz einfach machen will, dann setzt man für die Ausführung des Scriptes einen Cronjob auf und muss sich somit keinerlei Gedanken und Mühe mehr damit machen. Ich selbst habe das Script als externes Tool in OpenCacheManager eingestellt, so kann ich direkt aus OCM heraus mit einem Klick die PQs vor dem Import herunterladen. Dazu einfach unter Tools -> Externe Programme konfigurieren... einen neuen Eintrag erzeugen und als Befehl

gnome-terminal -e /pfad/zum/srcipt.sh

eintragen, natürlich mit richtigem Pfad und Dateinamen. Vornehmlich sollte dann auch das Standardimportverzeichnis von OCM mit dem Zielverzeichnis von PqDL übereinstimmen und schon nehmen all die neuen Caches ganz bequem ihren Weg vom Server in die heimische Datenbank.

Nachtrag: Unter Windows kann man sich wie oben erwähnt ebenfalls ein Script basteln, welches PqDL startet. Dazu legt man sich mit dem Notepad (Start -> Ausführen -> notepad -> Enter) eine Datei an, die man bspw. pqdl.bat nennt. Wichtig ist die Endung, also beim Speichern den kompletten Namen schreiben, dabei bestenfalls in Anführungszeichen setzen und unterhalb des Dateinamens auf Alle Dateitypen umschalten. In diese Datei kommt dann folgendes:

cd C:\Pfad\zum\PqDL-Verzeichnis
pqdl.exe -u $username -p $password -j --journalfile=pqdljournal.txt

Ein Doppelklick auf diese Datei startet nun ebenfalls PqDL, ebenso kann sie im Taskplaner (Gibts den jenseits von Windows XP eigentlich überhaupt noch?) eingetragen werden, damit sie regelmäßig von allein gestartet wird.

Schrottie

Ich blogge hier seit Anfang 2005 über wechselnde Themen. Zumeist handelt es sich dabei um Linux, Android, Geocaching oder Fotografie, aber zunehmend auch rund ums Fahrradfahren (mit MTB und Rennrad), das ich nach einigen Jahren Pause wieder für mich entdeckt habe. Dabei ist die Themenwahl insgesamt recht selektiv, also ich schreibe immer nur dann, wenn mich etwas wirklich interessiert und/oder bewegt und so kommt es dann auch, das man hier zuweilen auch private Dinge findet. Wer mir für die Arbeit ein kleines Dankeschön zukommen lassen möchte, der kann dies gern über meinen Amazon Wunschzettel tun. :-)

14 thoughts to “Automatisierter Pocket Query Download”

  1. Man kann also Qlandkarte auch mit GC verwenden? Das hatte ich bisher aus Deinen Artikeln zum Thema noch gar nicht rausgelesen. Da wäre es doch schlau wenn der QLandkarte-Mann das PQDL gleich als Plugin mitliefert. Vielleicht machen wir auch noch mal eine QLandkarte-Ecke in der grünen Hölle für den Support und die bessere Verbreitung der Software?

  2. QLandkarteGT kann man zur Tourenplanung durchaus verwenden, man kann auch (entpackte!) Pocket Queries einlesen und weiterverarbeiten. Allerdings habe ich hier nur OpencacheManager erwähnt und das ist schon eine echte Geocachingsoftware, halt das Pendant zu GSAK nur in schneller und für echte Betriebssysteme. Wobei man da tatsächlich langsam über einen eigenen bereich im grünen Forum nachdenken könnte, denn gerade aus Deutschland kommt ein Großteil der OCM-Downloads, das Programm wird also recht oft verwendet. Und ehe man irgendwelche Fragen krampfhaft auf englisch im SF-Forum klärt, könnte ja vieles muttersprachlich im GF abgeklärt werden. 🙂

  3. Ich würde auch sagen, dass OCM für die Cacheverwaltung / PQs das beste Tool ist. Man muss nicht alles in eine eierlegende Wollmilchsau verwandeln. Zumal OCM und QLGT sich prima über das DBus Interface austauschen können.

    Zum Thema Forum: Aus Supportsicht braucht es das nicht wirklich. Die anglophoben Benutzer kennen meine EMail Adresse gut genug, bzw fragen in den deutschsprachigen Foren nach. In der Regel sogar im richtigen Subforum 🙂 Als Werbung würde es sicherlich einiges bringen.

  4. Gute Anleitung, ich spiele mit dem Gedanken, die auf der PqDL-Seite zu verlinken 🙂

    Der Schalter -r geht übrigens alle paar Wochen kaputt, ich tendiere dazu, ihn ganz zu entfernen. Das Journal reicht ka völlig aus, oder?

  5. @leoluk: Klar, -r ist in der Tat hinfällig. Durch das Journal wird nix doppelt geladen und irgendwann werden die Dateien ja vom Server verworfen. Obendrein hat man auf diese Weise die PQs immer noch als „Backup“ auf dem GC-Server liegen.

  6. >Oh, with my “broken english”? I think this is not a good idea…

    No problem, I’ll write the article. That’s actually one point you I think you never mentioned about OCM… that fact that it can be translated to other languages whereas GSAK is not only Windows only but English only.

    I can read and speak French pretty well, but I think slower in it then in English. I imagine it’s the same for you, you could have still used OCM fine if it was in English, but it’s more natural and easier in German.

  7. Hmm, hat Groundspeak mal wieder am server rumgefummelt oder bin ich nur zu blöd … Ich bekomme nur eine „HTMLParser.HTMLParseError“ Exception.

    Ansonsten ein schönes Tool und eine schöne Anleitung.

  8. Ahh, ich war natürlich blind, es gab sogar eine passende Warnmeldung …

    Das aktuelle Ubuntu hatte eine zu neue Version von python-beautifulsoup drin (Version 3.1), es wird aber die Version 3.0.8.1 benötigt. Also die alte Version deinstallieren und von http://www.crummy.com/software/BeautifulSoup/ die 3.0.8.1 runterladen und per Hand installieren hat geholfen (sudo python setup.py install nach dem Entpacken im entsprechenden Verzeichnis).

  9. @TweetyHH: Das wird wohl daran liegen, das Du die aktuellste Version BeautifulSoup installiert hast. Da darf maximal 3.0.8 installiert sein. Für Ubuntu kannst Du dieses Paket hier nehmen: http://bit.ly/fTa6NG Erst die alte Version deinstallieren, diese installieren und dann die Version sperren. Fertig. 🙂

  10. Man kann gerne die aktuelle Version installiert lassen, es reicht, das Archiv für die 3.0.8 herunterzuladen und die darin enthaltene BeautifulSoup.py in den PqDL-Ordner zu kopieren. Das aktuelle Verzeichnis ist im Suchpfad weiter vorne, also wird die neuere ignoriert. Im nächsten Release tausche ich entweder BeautifulSoup ganz durch etwas anderes aus, oder ich liefere eine passende Suppe mit.

  11. Naja, ins gleiche Verzeichnis packen fällt bei mir aus, denn ich habe ja alles was mit PqDL zu tun hat dahingehend umbenamst, das es versteckt wird. Und damit würde die Suppe dann wohl ignoriert. Aber da PqDL das einzige ist, was hier auf der Maschine hübsche Suppe löffelt, kann ich mit der veralteten Version ohne weiteres leben. 🙂

Kommentare sind geschlossen.