2Abendsegler / GClh

GC little helper II - Some little things to make life easy (on www.geocaching.com). Powerful, configurable tool to improve and expand the geocaching pages.
GNU General Public License v2.0
58 stars 38 forks source link

Discussion #1132

Closed 2Abendsegler closed 3 years ago

2Abendsegler commented 4 years ago

@Ruko2010

Ok?

Ruko2010 commented 4 years ago

Klar

2Abendsegler commented 4 years ago

Ich möchte am Freitag nochmal eine kleine Version raus feuern mit der Berichtigung von zwei Kleinigkeiten und etwas Neuem, auch nur ne Kleinigkeit. Alles weitere soll dann erst mit der übernächsten Version frühestens Mitte Januar kommen.

Ist das so weit ok für euch @Ruko2010, @capoaira?

capoaira commented 4 years ago

Klar, für mich ist das in Ordnung.

Ruko2010 commented 4 years ago

Klar, kein Problem

2Abendsegler commented 4 years ago

Ich werde morgen früh nochmal eine neue Version raus hauen um die zahlreichen Fehler zu beseitigen. Es steht nur noch eine Sache aus, die ich hoffentlich noch bis morgen erledigen kann.

Bitte nichts weiter mergen.

Ruko2010 commented 4 years ago

Wird gemacht

2Abendsegler commented 4 years ago

Collector enthält nun die komplette Version 0.10.3. Wer also schon mal möchte ... . 😀

Ruko2010 commented 4 years ago

Was mir da grad einfällt. Nutzt du immer noch die blockierung von cookiebot? Falls ja wäre das vielleicht hinderlich um eventuelle Fehler zu finden, oder?

Ruko2010 commented 4 years ago

Danke für die Neue Version übrigens. Und deine Anmerkung im Off-Topic fand ich auch sehr hilfreich!

2Abendsegler commented 4 years ago

Was mir da grad einfällt. Nutzt du immer noch die blockierung von cookiebot? Falls ja wäre das vielleicht hinderlich um eventuelle Fehler zu finden, oder?

Ja, richtig. Ich habs auch ausgeschaltet. Nur wenn mir die langen Ladezeiten der Seiten auf den Sack gehen, schalte ich es mal an.

2Abendsegler commented 4 years ago

Damit es nicht verloren geht:

@2Abendsegler zum Thema Durchtesten will ich das hier mal in den Raum werfen: https://www.cypress.io/ Das ist ein Tool für automatisches Frontend-Testing. Eventuell wäre es eine Idee, das man sich mal näher damit befasst und ein paar Tests schreibt, so dass man das Testen dem Computer überlassen kann 😃.

Das wäre für uns als OpenSource Projekt sogar kostenlos: https://www.cypress.io/oss-plan

capoaira commented 4 years ago

Moin, ich habe bei einem anderen Projekt gerade das hier gefunden: https://help.github.com/en/github/managing-your-work-on-github/closing-issues-using-keywords#about-issue-references Damit kann man wohl Issues automatisch schließen, wenn man die Zugehörige PR merged. Macht das nicht auch Sinn hier zu nutzen?

Ruko2010 commented 4 years ago

Ich nutze dieses Feature meistens. Aber da wir nach dem PR eh nochmal ins Issue gehen und die Labels anpassen (von "waiting for merge" auf "complete") kann man sich das auch sparen.

capoaira commented 4 years ago

Ok, stimmt. Ich wusste bis gestern gar nicht, das es so etwas gibt😂

2Abendsegler commented 4 years ago

@capoaira Gut gemacht! Eigentlich geht es gar nicht so sehr darum die Art und Weise abzuklären, sondern hauptsächlich darum dass wir es nicht so hingerotzt bekommen und der gegenüber auch bereit ist eine winzige Arbeit zu leisten ... 😃

2Abendsegler commented 4 years ago

Kennt jemand eine Möglichkeit ein Bild in eine Webseite zu integrieren, ohne dass man das über ein img Tag mit src macht? Das kann auch völlig abstruse von hinten durch die Brust sein, egal.

2Abendsegler commented 4 years ago

Nur zur Info: Ich wurde vor etlichen Monaten gefragt, ob wir nicht auch im Forum von geoleaks Präsenz zeigen könnten. Ich hab vor einigen Tagen dort mal einen Thread zum GClh im Unterforum interessante Tools gemacht.

capoaira commented 4 years ago

Kennt jemand eine Möglichkeit ein Bild in eine Webseite zu integrieren, ohne dass man das über ein img Tag mit src macht? Das kann auch völlig abstruse von hinten durch die Brust sein, egal.

Mir fällt da nur ein, ein div- oder span- block mit background-image zu nutzen

Ruko2010 commented 4 years ago

Kennt jemand eine Möglichkeit ein Bild in eine Webseite zu integrieren, ohne dass man das über ein img Tag mit src macht? Das kann auch völlig abstruse von hinten durch die Brust sein, egal.

Kannst du etwas näher ausführen was du machen willst? Man kann auch pixel für pixel mit einem DIV nachbauen, dann hat man auch ein Bild 😃

2Abendsegler commented 4 years ago

Danke schon mal für euer Feedback.

Im Speziellen geht es darum, dass GS Bilder beispielsweise im Cache Listing verändert und das Bild im Cache Listing dann unter einer eigenen URL auf eigenen Rechnern hostet. Ein externer Link im Cache Listing zu einem Bild ist nicht mehr möglich.

GS erkennt einen img tag mit src und auch ein background-image als Bild und geht wie beschrieben vor.

Ziel ist diese Vorgehensweise zu umgehen. Beispielsweise für einen Flagcounter, der im Moment nur noch einen einzigen Besucher aus den USA zählt auch wenn 10 unterschiedliche Besucher aus 10 unterschiedlichen Ländern vorbeigeschaut haben.

Ruko2010 commented 4 years ago

alle Ideen die mir in den Kopf kommen bringen hier nichts. Wenn du es mit dem Helper umgehen willst, dann müsste man die URL des Bildes irgendwo speichern und dann laden, nachdem GS die Seite geladen hat, per AJAX am besten.

Wenn du den Flagcounter für den Helper meinst, dann können wir den Aufruf auf das Bild und somit den Call, der dann hochzählt sicher simulieren.

2Abendsegler commented 4 years ago

Der Flagcounter für den GClh funktioniert, weil er aus dem Script aufgerufen wird. Hier findet ja keine Änderung statt.

Es geht tatsächlich um einen Flagcounter im Cache Listing oder im eigenen Profil. Der Flagcounter wird zum Zeitpunkt des Speicherns des Cache Listings bzw. des Profils von GS verändert. Um weiterhin an korrekte Daten für den Flagcounter zu kommen muss man dafür sorgen, dass GS das Bild, also den Flagcounter, nicht als Bild erkennt, damit sie nichts verändern.

Ruko2010 commented 4 years ago

Dann könnten wir das als Funktion anbieten und den Ownern mitteilen: Speichert die URL des Flagcounters zusätzlich in einem div-data-element. Dann gehen wir das Listing durch und schauen ob der Flagcounter angezeigt wird, wenn nicht, laden wir die URL aus dem DIV. aber dass müssen die Owner wie gesagt selbst einrichten. Eine andere Chance sehe ich nicht, da GS sicher nicht die Originale URL des Counters irgendwo im Code lässt, oder?

Beispiel DIV:

<div data-gclh-url="http://url-des-flag-counters"></div>

2Abendsegler commented 4 years ago

Danke für dein Feedback!

Verstehe, dann müssten aber alle User den GClh verwenden damit es funktioniert.

Ich glaube ich habe auch etwas falsches angenommen, sorry. Das Bild steht gar nicht bei GS, sondern wird über einen Proxy aufgerufen. Der Link sieht dann beispielsweise so aus: https://imgproxy.geocaching.com/f291169d037eab31b48e13aebfcb79e581382868?url=http%3A%2F%2Fs10.flagcounter.com%2Fcount%2FFxbT%2Fbg_FFFFFF%2Ftxt_000000%2Fborder_CCCCCC%2Fcolumns_6%2Fmaxflags_30%2Fviewers_Besucher%2Bseit%2B19.02.2014%2Flabels_1%2Fpageviews_1%2Fflags_0%2F Daraus könnte man die ursprüngliche URL ermitteln.

Aber ... GS darf es nicht als Bild erkennen und darf keinen Proxy vorschalten, anders geht es meines Erachtens nicht.

Ruko2010 commented 4 years ago

Da hast du recht. Also wir könnten es über den GCLH somit auch ohne Usereingreifen anpassen, aber ich sehe derzeit keine Möglichkeit das in "regulärem" HTML Code zu umgehen. Da GS ja kein Javascript auf der Seite erlaubt (gerade getestet) kenne ich leider keine weiter Möglichkeit, sorry.

2Abendsegler commented 4 years ago

Ok. Vielen Dank für deine Mühe.

capoaira commented 4 years ago

Ich habe gerade mal etwas ausprobiert.

// Remove imgproxy.
    // Has to be run before "Show warning for not available images".
    if (is_page("cache_listing")) {
        var img = $('#ctl00_ContentBody_ShortDescription img, #ctl00_ContentBody_LongDescription img');
        for (let i=0; i<img.length; i++) {
            var pos = img[i].src.indexOf('=') + 1;
            var newsrc = decodeURIComponent(img[i].src.substr(pos, img[i].src.length));
            img[i].src = newsrc;
        }
    }

Damit wird der imgproxy entfernt. So könnten zumindest alle GClh user wieder alle Bilder sehen. Eine Möglichkeit direkt für Owner fällt mir auch nicht ein.

2Abendsegler commented 4 years ago

Nicht schlecht! Vielen Dank für deine Mühe.

capoaira commented 4 years ago

Mist, habe gerade versucht, das auf das öffentliche Profil zu übertragen. Aber ich schaffe es nicht, auf den iframe zuzugreifen. Hat einer von Euch Erfahrung damit?

2Abendsegler commented 4 years ago

Ich habe keine Erfahrung damit, weiß aber, dass es quasi mehrere html Seiten sind. Wenn du auf dein Profil gehst und im Inspector mal nach html suchst, dann siehst du nachfolgend zu html öfter als einmal und . Ich dachte auch dass wir im GClh quasi die Folgeseiten zur Verarbeitung ausschliessen, kann aber gerade nichts finden.

Dein Flagcounter ganz unten im Profil ist ein typisches Beispiel zu dem was ich meine. Seit Mitte Januar gibt es laut deinem Flagcounter nur noch Amerikaner die dein Profil besucht haben. Dafür verantwortlich ist der Proxi. Er stellt den Zugriff auf das Bild, also den Flagcounter, so dar, als ob immer der selbe Amerikaner zugegriffen hätte. Weil dein Flagcounter vermutlich nur alle paar Wochen einen Besucher als neu identifiziert, gibt es fast gar keine neuen Besucher dort.

Leider können wir hier ja mit dem GClh nichts ändern. Bzw. wenn wir für die GClh User den Proxi wieder korrigieren, ist die Aussagekraft vermutlich noch dubioser. Mein Ziel war es, den Flagcounter so im Profil einzubinden, dass GS ihn nicht als Bild erkennt und die URL nicht mit dem Proxi umwandelt.

Übrigens befindet sich als erstes auch ein gebrochenes Bild in deinem Profil. Vermutlich einer der Fälle in denen die Umwandlung der URL durch GS schief gegangen ist. Es gibt viele viele Beispiele dazu.

capoaira commented 4 years ago

Mir ist augefallen, dass eine Umwandlung immer dann schief läuft, wenn das Bild zu groß ist. Z.B. bei GC7HPH6, das Rätsel ist eine gif datei mit 20 MB. Es reichen aber auch schon 6 MB, damit dies schief geht wie beim Banner meines Virtuellen cache. Ich wollte eigentlich mal rausfinden, wo die Grenze ist.

Leider können wir hier ja mit dem GClh nichts ändern. Bzw. wenn wir für die GClh User den Proxi wieder korrigieren, ist die Aussagekraft vermutlich noch dubioser.

Stimmt. Dann würden nur noch GClh user gezählt. Währe auch nicht perfekt...

Das gebrochene Bild habe ich zum Test eigebunden. Nur leider konnte ich nicht auf das iframe zugreifen.

capoaira commented 4 years ago

Ich setzte mich heute nochmal dran. Wenn man das ganze in "Show warning for not available images" einbindet. Könnte man den proxy nur für Bilder, die nicht funktionieren entfernen. Das würde zwar immer noch nicht dass Problem mit dem Flagcounter beheben, aber dafür sorgen, dass man vorhandene Bilder, die nicht umgewandelt wurden wieder sehen kann.

2Abendsegler commented 4 years ago

Versuch es mal mit ...

   var content = $('#iFrameUserContent')[0].contentDocument;
   console.log(content);
   console.log($(content).find('body')[0]);

unter contentDocument steht also die gesamte Profil Information.

capoaira commented 4 years ago

Super, so funktioniert es.

capoaira commented 4 years ago

So, ich habe das ganze eingebaut: https://github.com/capoaira/GClh/tree/show-images Ist es so ok? Ich habe noch ein Problem im config mit dem showHelp. Könnt ihr Euch das mal angucken?

2Abendsegler commented 4 years ago

Hm ... du machst mich fertig. 😅

Ich dachte es ging um die Vermehrung von theoretischem Wissen und nicht um die Umsetzung eines Feature Requests. Es wäre mir sehr unangenehm einen bereits umgesetzten Feature Request von dir abzulehnen. Das kann ich nicht gebrauchen und du sicherlich auch nicht. Vielleicht könntest du in Zukunft vor der Umsetzung eines Feature Requests unsere Meinung dazu einholen, ob es umgesetzt werden soll. 🙄

Ok.

  1. Zum Problem mit einem Link in einem Infotext im Config fällt mir im Moment auch nichts ein. Ich habe keine Idee warum das derart abgebildet wird. Ich hätte es genauso gemacht und wäre damit auch die Wand gelaufen. Ich habe einiges ausprobiert, aber ohne Erfolg.

  2. Ohne Testdaten zu haben ist es ziemlich aufwendig sich die Problematik und die Entwicklung anzusehen. Das einzige Beispiel was mir bekannt ist stand in deinem Profil. Hm ... im Moment aber nicht mehr, glaube ich.

  3. Kannst du mich mal auf den aktuellen Stand bringen. 3.1 Was genau bringt mir die Entwicklung? 3.2 Von wie vielen derartigen Bildern reden wir?

capoaira commented 4 years ago

Es ist auch in Ordnung wenn du es ablehnst, ich will dich zu nichts zwingen nur weil ich nicht nachgefragt habe... Mir sind auch nicht so viele Fälle bekannt. Es sind halt nur Dateien mit über 5MB. Bei mir betraf es 2 Caches, einmal das Rätsel von GC7HPH6 und einen Banner, da habe ich die Datei aber kleiner gemacht, sodass es nicht mehr als Beispiel dient. Das (und das bescheidene Wetter😉) ist der Grund warum ich mich daran gesetzt habe.

2Abendsegler commented 4 years ago

Ich versteh es nicht. In deinem Cache war wohl der eigentliche Link von dir https://abload.de/img/gc7hph6kajks.gif.

Und GS machte daraus https://imgproxy.geocaching.com/1808153b64b64229cd020dc728020d31ad07467e?url=https%3A%2F%2Fpicload.org%2Fimage%2Fddpldogw%2Fgc7hph6.gif?

Das macht doch keinen Sinn. Wie kommt GS auf picload.org, wenn du dein Bild bei abload.de stehen hast.

Ich stehe voll auf dem Schlauch. 😲

capoaira commented 4 years ago

Ich habe das Bild bei picload hochgeladen. Dann wurde picload von abload übernommen. Das Bild ist über beide URLs zu erreichen. Wahrscheinlich ist das Bild auf picload gehostet und der abload link leitet nur auf picload weiter...

Ruko2010 commented 4 years ago

Ich werfe auch mal meine 2 Cent dazu (ihr könnt mich ruhig treten wenn ich falsch liege 😃), aber was bringt es dir, wenn die Bilder die größer als 5 MB bei Leuten angezeigt werden, die den GClh installiert haben? Wenn du ein Rätsel machst, dann sollte das für alle sichtbar sein und nicht nur für die Leute mit GClh. Ich würde mich also lieber um eine Lösung bemühen, die allgemein gültig ist. Falls den Bild viel zu groß ist und du es auch nicht komprimieren kannst/willst, dann teile es doch einfach in mehrere Stücke die kleiner als 5MB sind und setze die untereinander.

capoaira commented 4 years ago

Das Bild ist verlinkt. Wenn man es anklickt, kann man sich das Bild bei abload ansehen. Das Rätsel ist also noch für alle machbar. Wie beschrieben, habe ich meinen Banner komprimiert, damit ihn alle sehen können. Da es nicht so viele Bilder mit über 5MB gibt, finde ich es auch nicht so schlimm, wenn es im GClh nicht umgesetzt wird.

2Abendsegler commented 4 years ago

@Ruko2010 Ich finde du hast deine 2 Cent gut angelegt. 😃 Ich kann mich dem nur anschließen.

Ich glaube es ging @capoaira weniger um eigene Bilder oder Bildrätsel, sondern um die der anderen. Vielleicht in der Art: Wer den GClh hat, der kann sich ein Bildrätsel noch ansehen bzw. auch lösen. Wenn das jedes fünfte Bildrätsel betreffen würde, dann würde sich das ganze vielleicht lohnen. Ich vermute aber dass wesentlich weniger, vermutlich weniger als jedes 1000ste Bildrätsel davon betroffen ist.

Ich dachte auch zuerst wir könnten die defekten Bilder vom 19.02. von GS und auch andere wieder herstellen, aber das scheint nicht so. Hier ein Beispiel, Log mit Bild vom 19.02.: https://coord.info/GC797P4

Eigentlich dachte ich auch, dass zukünftig verwendete Bilder von GS gehostet werden. Die Originaladressen der Bilder würden wir dann aber auch nicht wieder herstellen können. Hier bin ich mir aber auch gar nicht mehr sicher, ob das überhaupt so passiert. Irgendwie habe ich vor lauter Postings in den entsprechenden Release Notes den Faden verloren.

@capoaira Hast du denn vielleicht noch weitere Beispiele, damit wir uns das mal ansehen können? Im Moment habe ich das Gefühl dass wir hier wegen Kleinigkeiten ein nicht unerheblichen Aufwand machen. Ich werde bestimmt mehr als 2 Stunden damit beschäftigt sein, das Ganze durchzutesten. Es betrifft ja auch die Warnungen wegen Bild nicht da.

capoaira commented 4 years ago

Ihr habt wohl Recht. Dann ist ein zu großer Aufwand. Ich habe mir in letzter Zeit selten andere Caches angeguckt, weil nie einen ganzen Tag zum Cachen hatte. Ich habe also auch keine andere Beispiele.

2Abendsegler commented 4 years ago

Um sonst war es auf jedenfall nicht, weil wir jetzt wissen wie wir auf die Profil Information zugreifen können. 😏

Und wenn ich jetzt noch wüsste wie man ein Banner aus einem Bild, Icons und Zahlen zu Founds, DNFs ... maschinell zusammenbauen kann, dann würde ich einen solchen Banner über den GClh ins eigene Profil hängen. Oder so was wie ein bewegter News Ticker, bestehend aus den Icons und Zahlen zu Founds, DNFs ... . Das ist noch eine offene Challenge aus der Zeit als ich mit dem GClh angefangen habe. 😂 Das wollte ich mal machen wenn ich Zeit zuviel hab ... 😂

Und das mit einem Link im Hilfetext im Config will ich mir auch nochmal anschauen. Wäre schon nett wenn das funktionieren würde.

Schmeiß deine Arbeiten mal noch nicht auf den Müll, warte noch ein paar Tage. Ich will mal noch die Release Notes nach Beispielen durchgehen um abschätzen zu können ob wir damit einige Probleme die dort aufgeführt wurden lösen können.

Ruko2010 commented 4 years ago

Und wenn ich jetzt noch wüsste wie man ein Banner aus einem Bild, Icons und Zahlen zu Founds, DNFs ... maschinell zusammenbauen kann

Schau mal hier: Ein canvas sollte sowas können: https://www.w3schools.com/tags/ref_canvas.asp

2Abendsegler commented 4 years ago

Das hört sich guut an! Vielen Dank! 👍 🖖

Heißt das canvas weil es was kann oder was 😂

Vermutlich erlaubt GS im Profil aber so gut wie gar nichts. Ich werde es mir aber trotzdem mal etwas genauer ansehen.

Ich dachte eigentlich man bastelt sich für gewöhnlich so etwas mit PHP zusammen. Vielleicht ist das ja wirklich machbar mit "kann was". 😊

2Abendsegler commented 4 years ago

@capoaira Du hast ja auch die Bildwarnung ausgedehnt aufs Profil. Ich werde mir das nochmal ansehen. Vielleicht kannst du einen PR und ein Issue dazu machen. Ich werde sehen was wir davon übernehmen. Der Parameter zur Bildwarnung und der neue Parameter stehen im Config im Listing, passt irgendwie dann nicht mehr richtig. Allerdings fällt mir auch gerade nichts besseres ein.

Ruko2010 commented 4 years ago

Ich dachte eigentlich man bastelt sich für gewöhnlich so etwas mit PHP zusammen. Vielleicht ist das ja wirklich machbar mit "kann was". 😊

Mit PHP gehts natürlich auch. Du kannst dir auch einen Service schreiben, der es per PHP generiert und irgendwo speichert. Dann brauchst du theoretisch nur den Link zu deinem generierten Bild einfügen. Aber dafür brauchst du natürlich etwas Webspace mit PHP unterstützung.

2Abendsegler commented 4 years ago

Wir haben eine kleine Erwähnung bei CacheFrequenz erfahren. :) Podcast CF191 – Im Zeichen der Quali 1:17:03 - 1:18:40

2Abendsegler commented 4 years ago

@Ruko2010, @capoaira :

Ich bin etwas beim Aufräumen und möchte einige Issues von 2017, die bisher noch im Storage stehen, in die Freiheit entlassen - "status rejected" und "tag not in scope". Es sei denn jemand ist noch ganz scharf auf eines der Themen. Man sieht schon an den Issue Nummern, dass die Teile wirklich alt sind.

Alle im Storage: https://github.com/2Abendsegler/GClh/issues?q=label%3Astorage+is%3Aclosed

Storage 2017:

  1. GClh Search 2.0 enhancement storage #314
  2. Enhance statistics with a month/year matrix #310
  3. Rework TODOs of v0.7 #309
  4. Update date format automatically #306
  5. GC Little Helper Developer's Guide #30
  6. Compact layout of page 'New Pocket Query' #213
  7. Profile Trackables pimpen [18] #15