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

Geolog: Fehler bei Minus im Ownernamen

wrtlbrmpft

Geocacher
Das Problem liegt an der neuen Profil-Seite von geocaching.com.

Mit folgender Änderung in der Version 2.93 der geolog.pl läuft das bei mir wieder durch. Bei einem neuen Cacheowner wird die Profilseite aufgerufen und die Datenbank gcdir\geolog.db3 erweitert:

Zeile 12152 alt:
Code:
    if ( $content =~ m%<span id=\"ctl00_ContentBody_ProfilePanel1_lblMemberName\">(.*?)</span>.*?id=\"ctl00_ContentBody_ProfilePanel1_lnkSeePosts.*?\&amp\;mid=(.*?)\"%si )
Zeile 12152 neu:
Code:
    if ( $content =~ m%<span id=\"ctl00_ProfileHead_ProfileHeader_lblMemberName\">(.*?)</span>.*?id=\"ctl00_ProfileHead_ProfileHeader_lnkSeePosts.*?\&amp\;mid=(.*?)\"%si )

Wer übrigens was zu reguläen Audrücken lernen möchte, sollte sich den Cache Regex Crosswords anschauen. War sehr hilfreich hier :D
 

geomitast

Geocacher
Danke!
Habe meine Änderung rückgängig gemacht und die von "wrtlbrmpft" eingetragen!
Läuft wieder perfekt.

geolog lebt!!!
 

wrtlbrmpft

Geocacher
Schon wieder wurde die Profilseite verändert und die Speicherung der User-ID für neue Owner läuft auf Fehler.

Hier die Korrekturen:

Zeile 78 alt:
Code:
my ($version) = "2.93b";
Zeile 78 neu:
Code:
my ($version) = "2.93c";

Zeile 12152 alt:
Code:
    if ( $content =~ m%<span id=\"ctl00_ProfileHead_ProfileHeader_lblMemberName\">(.*?)</span>.*?id=\"ctl00_ProfileHead_ProfileHeader_lnkSeePosts.*?\&amp\;mid=(.*?)\"%si )
Zeile 12152 neu:
Code:
    if ( $content =~ m%<a id=\"ctl00_ProfileHead_ProfileHeader_lnkSeePosts\".*?/profile/(.*?)-(.*?)/content/\">%si )

Zeilen 12154-12156 alt:
Code:
        $user{'name'}   = $1;
        $user{'luid'}   = $guid;
        $user{'userid'} = $2;
Zeilen 12154-12156 neu:
Code:
        $user{'name'}   = $2;
        $user{'luid'}   = $guid;
        $user{'userid'} = $1;

Im Link auf das Forum ist jetzt die User-ID und der Username in einem Feld durch "-" getrennt eingetragen.

wrtlbrmpft
 

hjoe

Geocacher
Hallo
nach einer schönen Tour habe ich auch wieder Probleme.
Obige Änderung ist eingefügt, trotzdem:

Code:
Ueberpruefung aller deiner Listings ... .[----]

Download der neu entdeckten Fundlogs:
 1/38 Download der Cachebeschreibung fuer GC3YQ84 ... .[----------]
  Name: "Waldgasthof"
  hole Usernamen fuer b1af59c0-4f69-4ecc-958a-8fbd307fd03e ... .[----]
  Username: 

 DB: fuege User  hinzuDBD::SQLite::db prepare failed: near ")": syntax error at ./geolog2.93c.pl line 11949.

Es ist ein Fehler aufgetreten: Can't call method "execute" on an undefined value at ./geolog2.93c.pl line 11950.
 

marsipulami0815

Geocacher
Hallo Heinz, die Zeile 11950 kommt mir bekannt vor. Ich verweise auf mich selber früher in diesem Thread :p
https://geoclub.de/forum/viewtopic.php?f=103&t=77599&sid=e7e58aa6ca866608dfed8ea270625579#p1228496

Die Zeile 11950 muss geändert werden:
alt:
Code:
 $sql = qq(INSERT OR REPLACE INTO gcUserTable (name, luid, userid) VALUES ( \"$dbuser{'name'}\",'$dbuser{'luid'}',$dbuser{'userid'} ));
neu:
Code:
 $sql = qq(INSERT OR REPLACE INTO gcUserTable (name, luid, userid) VALUES ( \"$dbuser{'name'}\", \"$dbuser{'luid'}\", \"$dbuser{'userid'}\" ));

Fragt mich bitte nicht warum, ich habe da keine Ahnung und nur auf Gut Glück probiert :???:
Gruß, Marcus
 

hjoe

Geocacher
Danke, das funktioniert wieder.
Ich kann mich nur wiederholen, ich beherrsche Perl nicht mal in den Anfängen, und will auch nicht eine weitere Sprache nur wegen dieser Anwendung lernen.
Schade, dass wir hier keinen Experten für die Pflege haben. Ich finde geolog einfach gut. Habe auch noch nichts vergleichvbares gefunden. Wenn jemand einen Tipp hat, her damit.
 

wrtlbrmpft

Geocacher
@hjoe:

Du hast jetzt vermutlich einige Einträge in der User-Datenbank gcdir/geolog.db3 ohne Username und User-ID, da eben kein Username und User-ID gefunden wurden.

Kann es sein, dass Du die Darstellung des Profils auf die alte Version zurückgestellt hast? Dann muss nämlich das Suchmuster nach Username und User-ID anders lauten.

Kannst Du das bitte mal mit dem neuen Profil testen und versuchen den Waldgasthof nochmal zu laden - ob das funktioniert.
 

hjoe

Geocacher
geolog hatte abgebrochen. Der erste war immer der "Waldgasthof".
Der ist jetzt korrekt in der Statistik->Gefunden, mit korrektem Eigentümer, ... und auch GcVote.
Ich denke, das jetzt alles Ok ist.
http://www.oertel-halle.de/gcdir/found/_Waldgasthof__GC3YQ84/index.html

Danke der Nachfrage
 
Oben