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

[Bug] Ankündigung: "Öffnen im Browser" inkonsequent

Robin888

Geomaster
Moin!

Mal nur als Teaser:
Ich stelle in letzter Zeit fest, daß einige Caches - wenn aus dem Cachewolf im Browser online geöffnet - mit und einige ohne alle Logs (&log=y) angezeigt werden.
Aufgefallen ist mir das, seit ich das Greasemoney-Skript "GC VIP List" benutze. Aber ich konnte bisher noch keine Regelmäßigkeiten entdecken.

Robin(888)
 

salzkammergut

Geomaster
Und warum postest Du dann hier (auch wenn es nur ein "Teaser" ist)? CW ruft den in den Präferenzen eingestellten Browser mit dem Argument "http://www.geocaching.com/seek/cache_details.aspx?wp=<Dein WP-Name>" offensichtlich korrekt auf, sonst würdest Du ja gar keine Cachedetails im Browser sehen. Wo ist da der "bug" in CW? Was soll an CW geändert werden?

Warum postest Du nicht bei userscripts.org, wo dieses Thema hingehört?

Grüße
skg
 
OP
Robin888

Robin888

Geomaster
Weil der Cachewolf nicht mehr *immer* die ..."wp=GC****&log=y"-Seite aufruft, sondern vereinzelt auch die "wp=GC****".

Es ist mir nur aufgefallen, weil das genannte Skript z.B. gefundene Caches als solche markiert, aber halt nur, wenn ein eigener Found-Log auf der Seite zu finden ist.
Öffne ich einen gefundenen Cache, ohne, daß alle Log angezeigt werden (wie bisher üblich) zeigt er das nicht an. Das hat mich stutzig gemacht.

Aber die URL wird vom Cachewolf "falsch" geliefert.

Klarer nun?

Robin(888)
 

pfeffer

Geowizard
kann es sein, dass es davon abhängt, auf welche Weise der Cache in Cachewolf importiert wurde?
Beim Import per GPX file wird - wenn ein entsprechendes Element im GPX-File enthalten ist - die dort eingetragene URL verwendet.
Beim Import per Download von Opencaching wird die URL folgendermaßen generiert:
"http://" + hostname + "/viewcache.php?cacheid="+CacheID.

Wie es beim Spidern ist, weiß ich nicht.

Gruß,
Pfeffer.
 
OP
Robin888

Robin888

Geomaster
Hm. Interessanter Gedanke.
Ich spidere meistens. Aber ab und zu habe ich auch schon mal mit Cachelist oder GCTour importiert und erst anschließend aktualisiert. Hm...

Robin(888)
 

salzkammergut

Geomaster
@Pfeffer: Ja das ist es. Es gibt ein internes Feld "URL", das beim Laden der GPX-Datei bzw beim Spidern gesetzt wird.

@Robin888: Das kannst Du prüfen indem Du die GCxxxx.XML Datei mit einem Texteditor öffnest. Ziemlich am Ende findest Du den Text "<URL><![CDATA[" und danach die URL, die beim "Im Browser Online öffnen" verwendet wird. Wenn der Cache gespidert wurde, so hängt es davon ab, was die Einstellung für die Logs war ob bei dem URL-Feld ein "log=y" dran hängt.

Grüße
skg
 
OP
Robin888

Robin888

Geomaster
Danke. Aber ich hätte es (in den meisten Fällen) lieber andersrum. %-)

Super wären natürlich auch zwei Menü-Punkte "Öffnen" und "Öffnen mit allen Logs".
Die Links sind ja leicht zu generieren.

Andererseits ist es in Ausnahmefällen durchaus interessant, daß sich der Link per Hand manipulieren lässt...

Robin(888)
 

pfeffer

Geowizard
ohne das "&log=y" werden ja 5 logs angezeigt. Das ist die Standardansicht und ich finde Cachewolf sollte dahin verlinken. Dort gibt es ja unten auch den Link "view them all on one page", für wen, der sie alle sehen möchte.

Gruß,
Pfeffer.
 

pfeffer

Geowizard
Code:
@@ -256,9 +256,12 @@
 			if(browserPathIsValid()){
 				ch = cacheDB.get(tbp.getSelectedCache());
 				CacheHolderDetail chD=ch.getCacheDetails(false, true);
+				String url =chD.URL;
+				int logpos = url.toLowerCase().indexOf("&log=y");
+				if (logpos > 0) url=url.substring(0,logpos) + url.substring(logpos+6,url.length());
 				try {
 					if (chD != null) {
-						CWWrapper.exec(pref.browser, chD.URL); // maybe this works on some PDAs?
+						CWWrapper.exec(pref.browser, url); // maybe this works on some PDAs?
 					}
 				} catch (IOException ex) {
 					(new MessageBox(MyLocale.getMsg(321,"Error"),
super, dass Du Dich dieser - und all der anderen Sachen annimmst!
Diese Lösung finde ich aber nicht besonders schön. Ich finde, das Problem müsste dort behoben werden, wo es erzeugt wird: im Spider oder beim GPX-Import.
So, wie Du es jetzt gemacht hast, wird nun leider nicht mehr genau die URL aufgerufen, die in der <cache>.xml als Cachelink gespeichert ist. Das ist irgendwie unschön.

Besten Gruß,
Pfeffer.
 

arbor95

Geoguru
habe ich absichtlich an der Stelle gemacht. Vielleicht wird ja diese Originalinfo "URL" noch woanders gebraucht. (Dazu habe ich zu wenig Überblick über CW.) Diese Info ist ja nicht fehlerhaft.
Nur für den Browseraufruf online sollte es ohne den log sein, imho.
 

pfeffer

Geowizard
achso, deswegen, dann kann ich es verstehen.

nein, wird nicht woanders gebraucht (und falls doch, müsste es dort eben auch geändert werden).

In Eclipse kann man leicht herausfinden, an welchen Stellen auf ein Objekt zugegriffen wird: den Cursor auf das Element stellen und dann strg-shift-g drücken. Das ist sehr of sehr hilfreich.

Sehr hilfreich ist die Funktion in Eclipse, mit der man herausbekommt, von wo die aktuelle Methode aufgerufen wird: strg-alt-h

Gruß,
Pfeffer.
 

arbor95

Geoguru
pfeffer schrieb:
...
In Eclipse kann man leicht herausfinden, an welchen Stellen auf ein Objekt zugegriffen wird: den Cursor auf das Element stellen und dann strg-shift-g drücken. Das ist sehr of sehr hilfreich.

Sehr hilfreich ist die Funktion in Eclipse, mit der man herausbekommt, von wo die aktuelle Methode aufgerufen wird: strg-alt-h
Ja, danke für die Tipps.
Ist aber ja hier ein Text in der xml-Datei.
Gut , auch da hilft Suchen!
 

pfeffer

Geowizard
hmm, auf den Text in der XML-Datei wird (hoffentlich) nur per CacheHolder.getDetails().URL zugegriffen.
Also: Cursor auf das "URL" in obigem String, dann F3 öffnet die Definition, dort strg-shift-g findet alle Zugriffe dadrauf.

Gruß,
Pfeffer.
 

arbor95

Geoguru
Das Reinschreiben zu verhindern ist ja die eigentliche Baustelle.
Für vorhandene Cache hab ich das jetzt in den Read reingebaut.
 

pfeffer

Geowizard
ich find, beim Einlesen sollte es nicht sein, einfach nur beim Erzeugen der URL, also nicht beim Schreiben der <cache>.xml, sondern da, wo die URL erzeugt wird.

Gruß,
Pfeffer.
 
Oben