Python Skript für geocaching.com - paperless caching, Koordinaten im Glopus Format

  • Man kennt das ja: man möchte am nächsten Tag 20 caches finden, die Ausdruckerei und Eingeberei in Glopus nervt und dauert ewig.


    Hab mir also mal ein Skript in Python geschrieben dass für eine Liste von cache ids die Beschreibung usw, sowie die letzten 5 logs holt. Die Ausgabe ist bewusst spartanisch um um Platz zu sparen und ist in der gleichen Reihenfolge wie man es von der Webseite her kennt.


    Die Koordinaten der caches werden in 'waypoints_base.txt' geschrieben und wenn vorhanden die waypoints (von multi caches) im Ordner 'waypoints_multi' gespeichert um die GoTo Seite von Glopus übersichtlich zu halten. Wenn man die waypoints benötigt, einfach die waypoint Datei ändern.


    Das script verwende die Cookies von Firefox, also muss man sich mit jenem auf der geocaching.com Seite einloggen ('remember me') und im script den Pfad zu den Cookies setzen; etwa C:\Dokumente und Einstellungen\c\Anwendungsdaten\Mozilla\Firefox\Profiles\bla.default\cookies.txt


    Für Ubuntu/Debian user:

    Code
    1. sudo apt-get install python-clientcookie
    2. echo "GCXXXXX GCYYYYY" | python groundspeak.py > out
    3. oder
    4. python groundspeak.py GCXXXXX GCYYYYY > out


    Für Windows user komplizierter:
    python installieren
    http://www.python.org/download/


    ClientCookie modul installieren
    http://wwwsearch.sourceforge.n…/src/mechanize-0.1.7b.zip
    entpacken
    in Windows shell/prompt:

    Code
    1. set path=%path%;C:\python25
    2. cd pfad_zu_enpacktem_zip
    3. python setup.py install


    verwenden

    Code
    1. python groundspeak.py GCXXXXX GCYYYYY > out.txt


    Falls bedarf besteht wäre es recht einfach das script zu erweitern um alle caches in der Umgebung gegebener Koordinaten zu laden. Mal sehen ob das jemand nützlich findet ;)

  • Ein einfacherer Weg dürfte sein:


    Die Caches mit dem Cache Scanner zu holen und in PDA-Display-friendly zu konvertieren.


    Diese _converted.html (und falls im Cache Scanner mitgeladene Bilder und Karten) einfach in ein Ordner auf der Speicherkarte geschoben (Script muß dahingehend angepasst werden - krieg aber jeder hin der lesen kann).


    In Glopus richtet man eine Taste oder Schaltfläche ein das das angehängte MortScript aufruft ein.


    Holt sich hier von pocketnavigation erhältliche Geocaches-POI's und speichert diese auf der Speicherkarte im Pfad für die POI's ab


    Nun kann man auf der POI-Seite den Cache auswählen.
    Durch drücken der Schaltfläche Details wird der Cache temporär auf die Goto-Seite übertragen.


    Nun einfach die belegte Taste oder Schaltfläche mit dem MortScript drücken und man bekommt die HTML-Seite des Caches angezeigt.


    Vorteil:
    Die Waypoints ändern sich nicht
    Die Anzahl der mitgeführten Cachebeschreibungen ist nur vom Speicher abhänig
    Just for Fun kann man mal grad zu einem Cache
    Man bekommt gleich den nächsten Cache in der Nähe oder vom Aktiven Waypoint oben Angezeigt.
    Direkter Aufruf der Cacheseite
    ...


    Gruß
    Silver

    Dateien

    • Poi.mscr.zip

      (1,02 kB, 176 Mal heruntergeladen, zuletzt: )

    Regioausflug.de Wandertourenplaner für Odenwald, Rhön, Mittelrhein und Taunus!!!!


    Ein Stau ist nur hinten blöd - vorne gehts !!!!

  • Silver34


    Vielen Dank für das Script, anpassen war kein Problem bisher... nur ich kriege es ums verrecken nicht hin eine Hardwaretaste des PDAs mit dem Script zu belegen und habe auch keine Möglichkeit gefunden (hier im Forum per Suche und ausprobieren) wie ich es als Button auf der GoTo Seite einbinden kann (wäre mir lieber).


    Wie hast Du das gemacht? Sorry aber da schein ich derzeit absolut auf dem Holzweg zu sein.


    Danke für die Mühe.
    enjoy
    KK


  • Hallo,


    Hardwaretaste ist relativ einfach!
    Über
    Ansicht - Einstellung Hotkeys
    wählst du die gewünschte Taste aus z.B. Taste5
    Im Feld Tastenzuweisung wählst du ganz unten "..." das aus
    nun wählst du nochmal Taste5
    nun ist die Schaltfläche rechtsunten "..." aktiv
    damit kannst du dich nun durch die Verzeichnisse hangeln und die gewünschte Datei auswählen - in unserem Beispiel die POI.mscr.



    Als Button kannst du die entweder über eine Benutzerdefinierte Seite oder auch aus der Kartenansicht einbinden.


    Ich nehme hier die Kartenansicht:


    Im Glopusordner die Datei map.ini mit einem Text-Editor öffnen


    unter [MAP] fügst du eine Zeile ein und trägst dort zum Beispiel


    Goto


    ein


    Ganz am Ende fügst du nun z.B. das ein


    [Goto]
    Refresh = 5
    Pos = RECT( 150, -41, 225, -21)
    Font.lfOrientation = 1
    Format = 1
    Action = /Storage Card/Programme/Glopus/Poi.mscr
    Type = 0
    Text = %GoToDistance%km
    Color_0 = Color(0,0,0)
    Color_1 = Color(255,0,255)
    Font.lfFaceName = Tahoma
    Font.lfHeight = 20
    Font.lfWeight = 700


    speicherst die Datei und startest Glopus neu.


    Nun Sollte Glopus in der Kartenansicht rechts ziemlich unten eine Schaltfläche anzeigen.
    Beim daraufklicken sollte das Script aufgerufen werden.


    mit
    Pos = RECT( 150, -41, 225, -21)
    bestimmst du die Größe und position der Schaltfläche (Negative Werte zählen von Rechts nach Links oder von unten nach oben)
    mit
    Action = /Storage Card/Programme/Glopus/Poi.mscr
    was beim daraufklicken passieren soll
    mit
    Text = %GoToDistance%km
    Was auf der Schaltfläche angezeigt weden soll


    Ich hoffe ich konnte dir etwas weiter helfen


    Gruß
    Silver


    PS: Zum korrekten ausführen des Scripts darf die Menüleiste in der Kartenansicht nicht ausgeblendet sein!!!

    Regioausflug.de Wandertourenplaner für Odenwald, Rhön, Mittelrhein und Taunus!!!!


    Ein Stau ist nur hinten blöd - vorne gehts !!!!

    Einmal editiert, zuletzt von Silver34 ()

  • Silver34
    Vielen Dank - wirst hier am Schluß noch mein privater Glopus-Betreuer :-)


    Mein größtes Problem war erstmal die Hardwaretasten zuzuordnen, denn die vom PDA Betriebssystem angewählte Hardwaretaste 1 ist bei mir Glopus eine andere Nummer ... ausserdem ist wer lesen kann klar im Vorteil, denn die "Dummy Exe" des MortScripts hatte ich zunächst nicht umbenannt...


    Jetzt hab ich das Script doch lieber so angepasst, dass ich mit den von CacheWolf exportierten HTML Dateien arbeiten kann und die Cache-Beschreibung per Hardwaretaste aus der GoTo Seite heraus aufrufe.
    Dazu waren die folgenden Änderungen notwendig:


    Set Endung auf ".html" ändern


    Die folgenden beiden Aufrufe deaktivieren

    ### Aufruf Ansicht
    #MouseClick 20,310
    #Sleep 500
    #Sleep 2500


    ### Aufruf GotoSeite
    #MouseClick 103,272
    #Sleep 500


    und die


    Markierung des Waypoints anpassen, damit der Name für die CW Exporte taugt
    ### Makierung Waypoint
    MouseClick 103,202
    Sleep 1000
    MouseDown 12,140
    MouseUp 55,140
    Sleep 1200


    Das Script wär damit fertig.


    Hier also meine Paperless Caching (GeoCaching) Lösung für Glopus:


    [CacheWolf ist mir einfach zu langsam auf meinem Loox600 und das Kartenhandling gefällt mir nicht. Alleine der Sonnenpfeil könnte noch in die GoTo Seite von Glopus integriert werden, dann wärs perfekt]


    1.
    Geocaches mit dem Cachewolf PC Tool von Geocaching herunterladen.


    2.
    Cachetour zusammenstellen oder gleich alle ins HTML Format exportieren,
    sowie die Caches als TomTom POIs im *.ov2 Format exportieren. Auf diese Weise hab ich schonmal alle Beschreibungen zur Verfügung und kann alle POIs auf den Glopus-Karten sehen.


    3.
    Karten für Glopus für den Bereich erstellen. (Anleitungen und Wege dazu gibts hier ja genug im Forum nachzulesen)


    4.
    Alles auf den PDA ziehen und in Glopus einbinden -> Fertig.



    Sehe ich also jetzt einen Cache auf der Glopus-Karte in meiner Nähe, wähle ich ihn aus und wähle "POI Details" aus dem Kontextmenü. Der Cache wird in die GoTo Seite übernommen. Jetzt nur noch Hardwaretaste drücken und die Beschreibung wird im IE des PDA aufgerufen.
    Glopus läuft dabei ja weiter, so dass man zwischen Beschreibung lesen und Navigation hin und her schalten kann -> Perfekt und im Vergleich zu Cachwolf auf meinem PDA wesentlich schneller!

  • Eine Sache wär jetzt noch der Oberhammer, da ich recht viele Cachebeschreibungen unterschiedlicher Orte mit mir herumtrage/-fahre:


    Um da eine gewisse Übersichtlichkeit zu wahren, würde ich bevorzugen, wenn das Script nicht nur ein Verzeichnis für die Cachebschreibungen akzeptieren würde, sondern ggf. auch Unterverzeichnisse mit einbeziehen könnte. So könnte man seine Aktualisierungen auch einfacher durchführen...

  • Zitat

    Original von KarlKater


    Vielen Dank - wirst hier am Schluß noch mein privater Glopus-Betreuer :-)


    Kann gut sein - ist ja mommentan nicht soviel los hier!


    Zitat


    Eine Sache wär jetzt noch der Oberhammer, da ich recht viele Cachebeschreibungen unterschiedlicher Orte mit mir herumtrage/-fahre:


    Um da eine gewisse Übersichtlichkeit zu wahren, würde ich bevorzugen, wenn das Script nicht nur ein Verzeichnis für die Cachebschreibungen akzeptieren würde, sondern ggf. auch Unterverzeichnisse mit einbeziehen könnte. So könnte man seine Aktualisierungen auch einfacher durchführen...


    Automatisch liese die sicher mit


    ForEach Variable in files ( Such-Ausdruck )
    ForEach Variable in directories ( Such-Ausdruck )
    siehe MortScript-Anleitung


    realisieren - Leider hab ich dafür mommentan nicht richtig die Zeit dafür dies auszuprobieren. Und weis nicht wie dabei die Performance aussieht!!


    Eine Übergangslösung währe mit einem Auswahlmenü zu realisieren



    Einfach vor


    %Poi% =%Pfad% & Stri1 & %Endung%


    das hier einfügen (ähm Anpassen mußt du es aber noch !!!!!)


    Stri1 =SubStr(Poi,1,7)
    EndIf

    #### Auswahlmenü nach 5 Sekunden
    Choicedefault "Menü","Auswahlmenü",1,5,"1 Ordner","2 Ordner", "3 Ordner","4 Ordner","5 Ordner"
    #
    Case 1
    Set Pfad, "file://\Storage%20Card\Caches\1Ordner\"
    Case 2
    Set Pfad, "file://\Storage%20Card\Caches\2Ordner\"
    Case 3
    Set Pfad, "file://\Storage%20Card\Caches\3Ordner\"
    Case 4
    Set Pfad, "file://\Storage%20Card\Caches\4Ordner\"
    Case 5
    Set Pfad, "file://\Storage%20Card\Caches\5Ordner\"
    Case 0
    Set Pfad, "file://\Storage%20Card\Caches\"
    SleepMessage 1, "Abbruch", "Menü"
    Exit
    EndChoice

    %Poi% =%Pfad% & Stri1 & %Endung%


    Gruß
    Silver

    Regioausflug.de Wandertourenplaner für Odenwald, Rhön, Mittelrhein und Taunus!!!!


    Ein Stau ist nur hinten blöd - vorne gehts !!!!

    2 Mal editiert, zuletzt von Silver34 ()

  • Sorry für die ewig späte Antwort, aber ich hab mich nach einem längeren Lehrgang erst jetzt wieder ans "Spielen" begeben und auch gleich die Tips berücksichtigt.
    Funktioniert einwandfrei und die Auswahl von 6 Verzeichnissen (5 anwählbar und eins das nach 5 sek automatisch genommen wird) reicht vollkommen aus.


    Nochmal Danke.
    KK

  • Nur mal als kleines Update.
    Mein Script bzw. das auf meine Bedürfnisse angepasst Skript von Silver34 findet sich anbei.


    Ich verwende den CachWolf um mir die POIs per TomTom *.asc export auf den PDA zu ziehen. Die Beschreibungen ziehe ich mir per HTML Export ebenfalls aus dem CacheWolf auf den PDA.


    Will ich mir die Beschreibung anzeigen lassen rufe ich mir den POI in der GoTo Seite auf (langer Klick auf den POI in der Kartenansicht und dann Kontextmenü "Übernehme ...") und rufe per Taste das Skript auf, welches mir den POI nach Auswahl des Verzeichnisses im Browser zur Anzeige bringt.


    Fertig.


    Für Anregungen bin ich dankbar und die Möglichkeit ggf. irgendwann direkt aus der Kartenansicht zur Browseranzeige zu springen wird hier diskutiert.
    VON Glopus Daten übergeben


    enjoy
    KK

  • Zitat

    Original von KarlKater
    ...
    Will ich mir die Beschreibung anzeigen lassen rufe ich mir den POI in der GoTo Seite auf (langer Klick auf den POI in der Kartenansicht und dann Kontextmenü "Übernehme ...") und rufe per Taste das Skript auf, welches mir den POI nach Auswahl des Verzeichnisses im Browser zur Anzeige bringt.
    ...
    enjoy
    KK


    Hallo,


    das zwischen


    ### Programm ablauf
    #


    ### Text aus Zwischenablage auf gewünschten GC-Code stutzen


    kannst du ersatzlos streichen wenn du den GoToName als Parameter mit übergeben läßt!! das geht auch über HardwareTaste!!!!! nur mußt du da den Aufruf manuell eintragen!


    Also entweder Bildschirmtaste:
    z.B.


    Action = "\Programme\Mort\MortScript.exe" "\storage Card\Programme\Mort\GCausGoto.mscr" GoToCp="%GoToName%"


    oder den gleichen Aufruf per TotalCommader direkt in die Registry des PDA's


    In den Key unter HKCU/Software/PKSoft\GPSLog


    z.B: Taste 1
    ...


    eintragen, somit entfällt die ganze Übergabe an MortScipt und es ist wesentlich schneller und die Übergabe praktische ohne Fehlermöglichkeiten.



    Gruß
    Silver

    Regioausflug.de Wandertourenplaner für Odenwald, Rhön, Mittelrhein und Taunus!!!!


    Ein Stau ist nur hinten blöd - vorne gehts !!!!

    2 Mal editiert, zuletzt von Silver34 ()

  • Silver34
    Hmm, ich bekomms irgendwie nicht hin, da anscheinend die Variable nicht mit übergeben wird.


    Action = "\Programme\Mort\MortScript.exe" "\storage Card\Programme\Mort\GCausGoto.mscr" GoToCp="%GoToName%"


    Liefert mir eine Programminformation, so als wenn ich nur auf MortScript.exe geklickt hätte.


    Action = "\Programme\MortScript\MapMove.mscr" MovDir="MovUn"


    Ruft zwar das Script an sich korrekt auf, übergibt die Variable MovDir aber nicht.
    Meine erste Zeile in dem Script heisst
    message(MovDir) und liefert ein leeres Infofenster, wobei ich den Text "MovUn" erwartet hätte.


    Was mach ich falsch?


    By the Way: Das Script soll mir per Button später mal die Karte in eine gewünschte Richtung verschieben.


    Viele Grüße
    KK


  • Hallo


    der Erste Teil des Actionaufrufs


    "\Programme\Mort\MortScript.exe"


    ruft das Programm MortScript.exe auf es muß auf den Speicherort der MortScript.exe verweisen und in " angegeben werden


    der Zweite Teil


    "\storage Card\Programme\Mort\GCausGoto.mscr"


    ist eigenlich schon ein Teil der übergebenen Parameter (Windows kann nur an exe Parameter übergeben) und muß auf die MSCR-Dateiverweisen also


    "\Programme\MortScript\MapMove.mscr"


    als Zweiten Parameter (Dritter Teil) wird die eigentliche Variabele übergeben - Der Wert muß in " angegenebn werden - also


    MovDir="MovUn" bzw GoToCp="%GoToName%" wenn von Glopus ein Parameter übergeben wird


    ist


    Action = "\Programme\Mort\MortScript.exe" "\Programme\MortScript\GCausGoto.mscr" MovDir="MovUn"


    So sollte deine Script aufgerufen werden und der Wert Angezeigt werden,


    Gruß
    Silver

    Regioausflug.de Wandertourenplaner für Odenwald, Rhön, Mittelrhein und Taunus!!!!


    Ein Stau ist nur hinten blöd - vorne gehts !!!!

    4 Mal editiert, zuletzt von Silver34 ()

  • Sorry Silver34
    wie bereits in dem Beitrag beschrieben liefert mir die folgende Action Zeile:


    Action = "\Programme\MortScript\MortScript.exe" "\Programme\MortScript\MapMove.mscr" MovDir="MovOb"


    ein MortScript Fenster mit dem Inhalt:
    ".mscr and .mortrun extensions registered.Please run any .mscr/.mortrun file or read the manual. (c)Mirko Schenk 2005-2009"


    Bedeutet für mich, dass mit MortScript 4.2 der Aufruf anders funktionieren muss.

  • Benutze ich den folgenden Befehl:


    "\Programme\MortScript\MapMove.mscr" MovDir="MovOb"
    oder
    "\Programme\MortScript\MapMove.exe" MovDir="MovOb"


    und lasse mir im Script als erstes die Variable MovDir anzeigen, ist diese leer bzw. nicht belegt.


    Irgendwie hab ich keine Idee mehr.


    enjoy
    KK

  • Meines Wissens ist daran schon lange nix mehr verändert worden!!!


    Bei mir funktioniert der Aufruf sowohl mit der 4.0 , 4,11 und 4.3b4.


    Bei den neuesten MortSript-Versionen ab 4.3b ist die Parameterübergabe jetzt auch in die AutoRun.exe eingebaut.


    Also die AutoRun.exe in das Verzeichnis kopieren in dem die MSCR steht und die AutoRun.exe gleich benamen


    z.B.
    Script : MapMove.mscr
    AutoRun.exe in MapMove.exe umbennen


    jetzt sollte der Aufruf


    "\Programme\MortScript\MapMove.exe" MovDir="MovOb"


    bei dir den Parameter mitübergeben


    Allerdings hab ich das nicht getestet!!! und der Aufruf ist auch etwas langsamer als direkt über MortScript.exe.


    Gruß
    Silver

    Regioausflug.de Wandertourenplaner für Odenwald, Rhön, Mittelrhein und Taunus!!!!


    Ein Stau ist nur hinten blöd - vorne gehts !!!!