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

[Dev] Verlinkte Bilder abspeichern ...?

Engywuck

Geowizard
Hallo Leute,
da gibts doch tatsächlich Fachleute, die Spoilerbilder nicht brav in die Bilderliste aufnehmen, wie sich das gehört, sondern sie in ihrer Cachebeschreibung extern verlinken. Beispiel hier.
Seht ihr eine Möglichkeit, diese verlinkten Bilder dennoch rauszusaugen und in der Bilderliste abzuspeichern? Das würde uns jetzt für die Urlaubsvorbereitung sehr helfen ;-)

Schöne Grüße,
Engywuck
 

pfeffer

Geowizard
bei opencaching.de geschieht das bereits. Wie das bei Geocaching aussieht, weiß ich nicht.

Gruß,
Pfeffer.
 
OP
Engywuck

Engywuck

Geowizard
Falls Du mich meinst: Build 1277 gibts noch nicht...

Würde das auch bedeuten, dass beim Aktualisieren eines bisher ohne Bild geladenen Caches das Bild nun nachgezogen würde?

Engywuck
 
OP
Engywuck

Engywuck

Geowizard
So, jetzt ists da - das sieht ja fast richtig super aus! Ein Problem hab ich noch, aber das kann auch ganz andere Gründe haben:
Wenn ich Cache GC10WEH betrachte, wird als das erste externe Spoilerbild das Bild GC10WEH_6.jpg erzeugt. Dieses ist jedoch kein Bild (wie die Endung nahelegen würde) sondern eine HTML-Seite, die nachelegt, dass die aufrufende Syntax falsch ist: Die Fehlermeldung heisst
Code:
Erreur 400 - La syntaxe de la requête est erronée
(Übersetzung für Nicht-Franzosen: Die Syntax der Anfrage ist fehlerhaft.) Ist das nachvollziehbar?

Ansonsten: Prima Arbeit, Jungs! Ihr habt uns sehr geholfen!!

Merci,
Engywuck
 
OP
Engywuck

Engywuck

Geowizard
Nee, bei mir klappts immer (reproduzierbar) noch nicht. Kann ich irgendwie mittracen, welche Requests zum Server geschickt werden?

Engywuck

P.S.: Grad mal in meinem entsprechenden Profil geschaut: Es enthält 2498 jpg-Dateien, davon sind 174 eigentlich HTML-Dateien. Der Inhalt ist durchaus recht unterschiedlich, von "Bad Gateway" über "Datei nicht gefunden" - wohl alles, was statt eines Bildes so an Daten ankommen kann, wenn was schiefgeht.
Es wäre also auch geschickt, wenn man die angekommenen Daten prüfen würde, ob es eine HTML-Seite oder ein Bild ist.
 

salzkammergut

Geomaster
Kannst Du noch die Namen von einigen Caches posten, wo der Server eine HTML Datei anstatt der JPG Datei zurückgeschickt hat. Ich glaube, da ist noch irgendwo ein Problem und würde gerne herausfinden woran das liegt (Eventuell an einem fehlenden Header)

Gruß
salzkammergut
 
OP
Engywuck

Engywuck

Geowizard
Na gerne doch...
Code:
GC100CT_0.jpg
GC100CW_0.jpg
GC100CZ_0.jpg
GC100D0_0.jpg
GC100D5_0.jpg
GC100D9_0.jpg
GC10DXG_0.jpg
GC10G2X_0.jpg
GC10GBV_1.jpg
GC10GBV_2.jpg
GC10GGB_0.jpg
GC10GGB_1.jpg
GC10GGB_2.jpg
GC10J70_0.jpg
GC10J70_1.jpg
GC10K37_0.jpg
GC10K37_1.jpg
GC10NPY_0.jpg
GC10NPY_1.jpg
GC10NPY_2.jpg
GC10NPY_3.jpg
GC10NPY_4.jpg
GC10NQ9_0.jpg
GC10T07_0.jpg
GC10T07_1.jpg
GC10T07_3.jpg
GC10T07_4.jpg
GC10TK8_0.jpg
GC10TK8_1.jpg
GC10TK8_3.jpg
GC10VG1_0.jpg
GC10VG1_1.jpg
GC10VG1_2.jpg
GC10VGX_0.jpg
GC10VGX_1.jpg
GC10VGX_2.jpg
GC10WEH_0.jpg
GC10WEH_1.jpg
GC10WEH_2.jpg
GC10WEH_3.jpg
GC10WEH_4.jpg
GC10YMG_0.jpg
GC10YMR_0.jpg
GC10YMR_1.jpg
GC111D6_0.jpg
GC115RQ_0.jpg
GC115RQ_1.jpg
GC116BM_0.jpg
GC116BM_1.jpg
GC116BM_2.jpg
GC116BM_3.jpg
GC116FM_0.jpg
GC116FM_1.jpg
GC11749_0.jpg
GC11749_1.jpg
GC1174B_0.jpg
GC1174B_1.jpg
GC1174B_2.jpg
GC11EMT_0.jpg
GC11EMT_2.jpg
GC11EMW_0.jpg
GC11EMX_0.jpg
GC11EMX_2.jpg
GC11EMZ_0.jpg
GC11EMZ_2.jpg
GC11GM4_0.jpg
GC11GM4_3.jpg
GC11GM4_5.jpg
GC11GM4_6.jpg
GC11GP4_0.jpg
GC11K7T_0.jpg
GC11K7T_1.jpg
GC11K7Y_0.jpg
GC11K7Y_1.jpg
GC11K82_0.jpg
GC11K82_1.jpg
GC11KVB_0.jpg
GC11KVB_2.jpg
GC12928_0.jpg
GC12928_1.jpg
GC1292A_0.jpg
GC1292A_1.jpg
GC12A1X_0.jpg
GC12A1X_1.jpg
GC12FEE_0.jpg
GC12FEE_2.jpg
GC12FEE_3.jpg
GC12MCA_0.jpg
GC12MCA_1.jpg
GC12MCA_3.jpg
GC12MCB_0.jpg
GC12MCB_1.jpg
GC12MCB_3.jpg
GC12MCD_0.jpg
GC12MCD_1.jpg
GC12MCE_0.jpg
GC12MCE_1.jpg
GC14D7A_0.jpg
GC14D7A_3.jpg
GC14K1C_0.jpg
GC14K1C_2.jpg
GC14K1H_0.jpg
GC14K1H_2.jpg
GC14K1N_0.jpg
GC14K1N_2.jpg
GC14K1V_0.jpg
GC14K1V_2.jpg
GC14K23_0.jpg
GC14K23_2.jpg
GC14K29_0.jpg
GC14K29_2.jpg
GC14K2J_0.jpg
GC14K2J_2.jpg
GC14K2J_3.jpg
GC14Z3M_0.jpg
GC14Z3M_2.jpg
GC14Z3R_0.jpg
GC14Z3R_2.jpg
GC14Z42_0.jpg
GC14Z42_2.jpg
GC152DD_0.jpg
GC152DD_2.jpg
GC152DH_0.jpg
GC152DH_2.jpg
GC152DK_0.jpg
GC152DK_2.jpg
GC15D5W_0.jpg
GC15DCR_0.jpg
GC15DCR_2.jpg
GC15DCZ_0.jpg
GC15DCZ_2.jpg
GC15DD4_0.jpg
GC15DD4_2.jpg
GC15DD5_0.jpg
GC15DD5_2.jpg
GC15G1A_0.jpg
GC15H2G_0.jpg
GC15H2G_2.jpg
GC15H32_0.jpg
GC15H36_0.jpg
GC15H36_2.jpg
GC15HC8_0.jpg
GC15HC8_2.jpg
GC15JYE_0.jpg
GC15JYE_2.jpg
GC160P5_0.jpg
GC162R1_3.jpg
GC16PKJ_0.jpg
GC16PKJ_1.jpg
GC177TA_0.jpg
GC177TA_1.jpg
GC177TD_0.jpg
GC177TD_1.jpg
GC17VMD_0.jpg
GC17VME_0.jpg
GC17VMJ_0.jpg
GC17VMN_0.jpg
GC17VMP_0.jpg
GC17VMQ_0.jpg
GC18KRB_0.jpg
GCQ3X4_0.jpg
GCTMAX_0.jpg
GCTMAX_1.jpg
GCTY7E_0.jpg
GCTY7E_2.jpg
GCX423_0.jpg
GCZXJ3_0.jpg
GCZXJ3_3.jpg
GCZXJ4_0.jpg
GCZXJ4_3.jpg
GCZXJ7_0.jpg
GCZXJ7_3.jpg
GCZXJC_0.jpg
GCZXJC_3.jpg
GCZXJD_0.jpg
GCZXJD_3.jpg
Ich kann Dir auch gerne die betreffenden Dateien mailen. Gezippt nur gut ein halbes MB.

Engywuck
 

salzkammergut

Geomaster
Also ich habe mir jetzt mal die ersten 5 der oben gelisteten Caches gezogen. Hat problemlos funktioniert.

Hast Du versucht sie mit Rev 1278 neu zu laden? In dieser Rev habe ich eine Zeile eingefügt, die die URL decodiert (also die Zeichen wie %20 usw. wieder entfernt). Das war nämlich bei dem von Dir angegebenen Beispiel das Problem.

Gruß
skg
 
OP
Engywuck

Engywuck

Geowizard
Immer noch das gleiche. Ich habs mit Version 1278 probiert, und schon der Cache GC100CT funktioniert nicht. Aber da ja jetzt der CW auch in Eclipse läuft, hab ich das mal in der Entwicklungsumgebung gestartet und mir die Requests angeschaut, die abgesetzt werden. Da ich davon keine Ahnung hab, poste ich sie mal hier:
Code:
GET /seek/cache_details.aspx?wp=GC100CT&log=y HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Cookie: ASP.NET_SessionId=p3qfkk452ctftqet4la5nz55; userid=164aee4d-dbb6-4a76-b18d-02757ebf9afe
Connection: close
Host: www.geocaching.com

GET /%25e9l%25e9ments/Vieux%2520N%25eemes/vieux-nimes.jpg HTTP/1.1
Connection: close
Host: geocaching77.free.fr

GET /stats/img.aspx?txt%3DWelcome%2Bin%2Bgeocache%2BN%25C3%25AEmes%26amp;uid%3D56a3430e-756a-4d95-9fc0-844eb6188d0a%26amp;bg%3D1 HTTP/1.1
Connection: close
Host: img.geocaching.com
Sieht das irgendwie auffällig aus? Mir sagt das nicht so richtig viel ;-)

Engywuck

Nachtrag: Folgende Adresse liefert mein Browser (Opera) für das Bild:
Code:
http://geocaching77.free.fr/%e9l%e9ments/Vieux%20N%eemes/vieux-nimes.jpg
 
OP
Engywuck

Engywuck

Geowizard
Ah, ich hab Deinen Fehler.
Wenn in der URL bereits ein escaptes % vorkommt, dann wird dieses % von Dir wiederum durch ein %25 escapted. Damit ist auch klar, warum das bei den Franzosencaches etwas häufiger Probleme macht - man denke an é, è, â...

Engywuck
 

MiK

Geoguru
Welcher vernünftige Mensch schreibt denn solchen Fliegenschiss in Dateinamen, die er ins Netz stellt?
Ach so Franzosen... Alles klar...
 

salzkammergut

Geomaster
@Engywuck; Komisch dass es bei Dir unter Eclipse nicht funktioniert. Ich arbeite auch mit Eclipse (unter Windows XP).

Da die Links auf die Bilder in den von Dir angeführten Caches URL-encoded sind, habe ich in SpiderGC Zeile 932, 980 und 1019 je einen Aufruf von URL.decode() eingebaut, der die enkodierten Zeichen wieder rückgängig macht. In HttpConnection.makeRequest werden die URLs dann wieder enkodiert. Das funktioniert bei mir auch recht gut. Kannst Du mit dem Debugger einmal testen wo da das Problem liegt?

Mich würde auch interessieren, wie Du die Requests verfolgst.

Grüße
salzkammergut
 
OP
Engywuck

Engywuck

Geowizard
1. Ich scheine einem Teilproblem aufgesessen zu sein: Ich hatte zwar die aktuellen Sourcen ausgecheckt, aber die sind wohl erst nach einem Clean auch benutzt worden. Hab wohl in Eclipse zumindest immer noch mit Version 1277 gearbeitet.

2. Jetzt klappt zwar Dein primäres decoding, aber das encoding scheint mit den Akzenten nicht klar zu kommen. Aus
Code:
GET /éléments/Vieux%20Nîmes/vieux-nimes.jpg
wird nach dem encoden
Code:
GET /éléments/Vieux%20Nîmes/vieux-nimes.jpg
Da sehe ich nicht so viel Unterschied...

Verfolgen lässt sich dass in HttpConnection.makeRequest. Habe mal in Zeile 373 ein
Code:
	String xx = new String(ba.data);
eingefügt und das dort per Breakpunkt in der Variablenliste beobachtet.

Engywuck
 

salzkammergut

Geomaster
Ich glaube das Problem ist, dass die URL.encode Funktion nur für Ascii-Strings funktioniert. In SpiderGC habe ich daher eine Funktion encodeUTF8URL hinzugefügt.

In HttpConnection gibt es auch die Möglichkeit die Variable "documentIsEncoded" zu setzen. D.h. beim Laden von Bildern könnte man folgendes machen:

Wenn in der URL ein % vorkommt, die URL unverändert lassen in der Annahme, dass sie bereits richtig enkodiert ist (Zeile 932,980, 1019)

Wenn in der URL kein % vorkommt, sie mit encodeUTF8URL enkodieren.

In spiderImage Zeile 1056 einfügen " connImg.documentIsEncoded=true;".

Kannst Du mal testen ob das hilft?

Grüße
skg

P.S.: Bitte diesen Thread mit einem [DEV] versehen.
 
OP
Engywuck

Engywuck

Geowizard
Ich komm jetzt nicht mehr ganz mit, was Du schon gemacht hast und was ich noch ergänzen soll...

Engywuck

P.S. wieso gibts im Repository eigentlich keinen Ordner "experimental", wo man sowas mal zwischen den Entwicklern hin und her schieben könnte...?
 
Oben