• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Abruf korrigierter Koors aus zwei GC-Accounts automatisieren

OP
D

Dingo79

Geocacher
Ja... Beide Tipps machen wohl auch sehr viel Sinn! Gut, dass du mich an ersteres erinnerst. Und danke für den zweiten Hinweis, denn danach suche ich die ganze Zeit im Netz. Vielleicht kann ich mir dort noch das ein oder andere rausfischen.
 

8812

Geoguru
Ein ewiger Quell an Inspiration ist vor allem der GSAK-Index (klick hier) selbst.

3454ceeb8929c5a74ba713286a4d710d.png


Ich schaue mir oft einfach die Makros anderer Leute an, um verwendbaren Code zu entdecken. ;-)

Hans
(aka HHL) :hilfe:
 
OP
D

Dingo79

Geocacher
Ja, genau da bin ich grad auch dran ;-) Ich suche grad was brauchbares für Schritt 4 für das GlobalReplace <Settings="name">
 

8812

Geoguru
Dingo79 schrieb:
Ja, genau da bin ich grad auch dran ;-) Ich suche grad was brauchbares für Schritt 4 für das GlobalReplace <Settings="name">
Auch hier gilt: erst einmal die Settings sichern:

cc754268d228521e8a5d868633dfa00a.png

ac63023f30228b15f1dd2849f774fae6.png


Dein Macrocode hieße dann:
Code:
GlobalReplace Settings="Set Unfound"
GlobalReplace Settings="Symbol: Geocache"

Hans

NB: Das Datum zu ersetzen kannst Du dir glaube ich sparen. Für den reinen Garmin-Export bräuchtest Du ohnehin nur das Symbol ändern, denn die GarminFirmware erkennt den Fundstatus immer ahhand des Symbols.
 
OP
D

Dingo79

Geocacher
Ja... Ich staune ob deines Wissens! Und es hat in der Tat ausgereicht, nur das Symbol zu ersetzen, damit es im Garmin nicht als Fund angezeigt wird.
Ich möchte wirklich nicht dein Eindruck erwecken, dass ich mir alles vorkauen lasse....
Ich suche momentan nach dem Code, um die Caches mit nicht korrigierten Koors zu löschen. Irgendetwas also, was im Zusammenhang steht mit "not g_contains('Bonus',name) and not HasCorrected"
 

8812

Geoguru
Dingo79 schrieb:
Ja... Ich staune ob deines Wissens! Und es hat in der Tat ausgereicht, nur das Symbol zu ersetzen, damit es im Garmin nicht als Fund angezeigt wird.
Ich möchte wirklich nicht dein Eindruck erwecken, dass ich mir alles vorkauen lasse....
Ich suche momentan nach dem Code, um die Caches mit nicht korrigierten Koors zu löschen. Irgendetwas also, was im Zusammenhang steht mit "not g_contains('Bonus',name) and not HasCorrected"
Mit dem zitierten MFilter filterst Du die Datenbank auf die Caches, die deleted werden sollen.
Wie immer gilt: Settings sichern (Menü>Waypoint>Delete Waypoint(s) ...)

0bd6b461b5b89e94d104ffe51bc8f9b8.png


Dann löscht Du sie mit dem Befehl:
Code:
DELETE Settings="In Filter"   # oder mit einem Namen deiner Wahl ;-)
Wenn Du vorher gerne noch einmal gefragt werden möchtest:
Code:
IF YesNo("Sollen diese Caches gelöscht werden?")
  DELETE Settings="In Filter"
  ELSE
ENDIF
 

8812

Geoguru
Noch ein Tip:
Das Nummernzeichen # dient dazu in einer Zeile Kommentare anzubringen, die dann nicht zum ausgeführten Macrocode als solchem gehören.
Du kannst auch vor bestimmten Code-Blöcken einfach Kommentare einfügen:

#****************** Hier geht XYZ los*****************

Damit wird der Code etwas strukturierter und übersichtlicher. ;-)

Hans
 
OP
D

Dingo79

Geocacher
Hallo Hans,
ist schon bemerkenswert, wie die Zeit verfliegt. Mein erstes Posting von heute ist nun bereits drei Stunden her. Ich hoffe, ich bin jetzt durch, kannst du nochmal auf Syntax und Sinnhaftigkeit gegenlesen? Überall, wo Settings steht, sind natürlich auch Settings hinterlegt, sodass das Kommando nicht leerläuft... Ist der Begriff "MOVECOPY" in der letzten Zeile das richtige Kommando?
Ich füge den Makrocode mal hier ein; ich "trau" mich noch nicht so recht, es mit einem verkleinerten Km-Radius auszuprobieren.
Und nochmal, danke für deine bisherigen Tipps!!!
LG

Code:
#*******************************************
# MacVersion = 1.0
# MacDescription = 
# MacAuthor = 
# MacFileName = Caches_fuer_Eltern.gsk
# MacUrl =
#*******************************************

DATABASE Name="04 - Eltern" Action=select
GcSwapToken User=ich_selbst
GcGetGeocaches Settings="GetCaches_Eltern_Geloeste_Caches"
MFILTER Expression=not g_contains('Bonus',name) and not HasCorrected
DELETE Settings="Geocaches_im_Filter_loeschen"
GlobalReplace Settings="Symbol: Geocache"

GcSwapToken User=Eltern
GcGetGeocaches Settings="GetCaches_Eltern_Tradis_etc"

DATABASE Name="01 - Geloeste" Action=select
MFilter Where=distance<=40
GcSwapToken User=Eltern
GcRefresh Scope=Filter LogsPerCache=30 LoadSettings="Geocaches_aktualisieren" Format=Full
MFilter Where=distance<=40 and not found and status='A'
MOVECOPY Settings="Geocaches_kopieren_zu_Eltern"
 

8812

Geoguru
Super. Ob die Namen der Setting und der User stimmen kann ich natürlich nicht checken. ;-) Sonst scheint das gut auszusehen.
Ein Tip noch zu den MFiltern:
Hier sollte noch eine Abfrage vorgeschaltet werden, ob überhaupt Caches im Filter sind. Sind nämlich keine Caches im Filter, dann wird die folgende Aktion auf die gesamte DB angewandt. Und das will man meistens nicht.
Filter check geht so:

Code:
MFILTER Expression=not g_contains('Bonus',name) and not HasCorrected
IF $_FilterCount>0
DELETE Settings="Geocaches_im_Filter_loeschen"
GlobalReplace Settings="Symbol: Geocache"
ELSE
MsgOK Msg="Kein Cache im Filter. Makro wird beendet."
ENDIF

Tip 2: Lege zum Testen zwei Test-DBs an, die Du mit Teilen der Caches deiner Original-DBs füllst. Laß das Makro erst einmal auf die Test-DBs los. ;-)

Hans
 
OP
D

Dingo79

Geocacher
Hallo Hans,
danke nochmals für deine nicht unerhebliche Hilfe ;-) Letztendlich hat alles nach einigem Probieren und Umstellen geklappt. Hier dazu noch ein paar Anmerkungen (kann ja sein, dass wir mit diesem Code auch anderen helfen können):

1.
An zwei Stellen im Code muss es "GcGetCaches" und nicht "GcGetGeocaches" heißen.
2.
Ganz am Ende des Codes fehlte ein "ENDIF", sodass ich zunächst eine Fehlermeldung erhielt.
3.
Tip 1 machte an der Stelle oben im Code keinen Sinn, da das Löschen der Ungelösten in jedem Fall erwünscht ist. Ich habe diesen Tip aber an die MFilter-Abfrage im unteren Code-Bereich eingebaut.
4.
Ich habe bei den drei API-Aufrufen in den Settings jeweils deaktiviert, dass der Bericht einglendet wird, sodass ich dies nicht mit "OK" zur Kenntnis nehmen muss, bevor das Makro überhaupt weiterarbeiten kann. Denn im Regelfall soll das Makro ja eine Viertelstunde oder länger ohne mich ackern ;-)
5.
Tip 2 war gut. Letztendlich hat auch alles - nach einigem Testen und Gegenrechnen der Testumgebung - so funktioniert, wie es soll :)

LG
 

8812

Geoguru
Super. Das ist ja sehr erfreulich.

Viel Spaß noch damit. Ich hoffe, Du hast den Reiz von Makros erkannt, vor allem aber, sich diese Sachen relativ einfach erarbeiten zu können. ;-)

Hans
 
OP
D

Dingo79

Geocacher
Ja und ich muss sagen, auch wenns etwas mit meinem Verständnis gedauert hat, du hast mich gut in das Thema eingeführt. Jetzt weiß ich beim nächsten Mal, wo ich suchen muss und hab zumindest einen Schimmer davon, dass eigentlich fast alles möglich ist ;-) Und die Basis für weitere Abrufe ist damit ja geschaffen.
Ich denke, so kann ich meinen Eltern auch mal öfter eine Aktualisierung ihrer Query anbieten, die ich sonst nur so alle sechs Wochen - also eigentlich viel zu selten, wenn man es mal etwas anspruchsvoller betrachtet - vorgenommen habe, weil es ja per Hand schon immer ein Aufwand war, all diese Abfragen manuell anzustoßen.
Nochmals ganz herzlichen Dank, dass du dir diese Zeit genommen hast und mich auch nicht von Anfang an vor eine vollendete Lösung gesetzt hast!
 
Oben