Immer informiert über die neuesten Erweiterungen für meine Spiele: Hilfsmittel und Skript

  • Hallo allerseits,

    wenn ich eines liebe, dann sind es Erweiterungen! Auch wenn manche von ihnen spielerisch nicht wirklich Mehrwert bieten, so bieten fast alle wenigstens zusätzliche Varianz. Sie sind für mich also ein Mittel meine Lieblingsspiele frisch zu halten. Daher habe ich früher einiges an Zeit verbracht, um herauszufinden, was es denn Neues für meine Spielchen gibt. Wenn eine Erweiterung für Everdell herauskommt, das schreiben ja Doppeldecker in den Himmel, aber bei einer Mini-Erweiterung für ein unbekannteres Spiel meiner Sammlung, darauf wird man nicht aufmerksam gemacht. Und spätestens wenn 100+ Spiele in der Sammlung sind, dann stolpert man nur noch zufällig über einen solchen Schatz.

    Ich habe daher lange Zeit nach Lösungen gesucht. Leider bietet BGG keine direkte Lösung an. Eine Benachrichtigung wenn einem Spiel eine neue Erweiterung hinzugefügt wird, die gibt es (glaube ich) bis heute noch nicht. Warum, das verstehe ich nicht wirklich.

    Es gibt allerdings eine tolle Seite, die zumindest eine Übersicht fehlender Erweiterungen extrahieren kann:

    BGG Ilmion's Companion

    Wer die entsprechenden Einstellungen nicht vornehmen will, einfach in folgenden Link euren Benutzernamen einfügen und im Browser aufrufen:
    http://bggcompanion.herokuapp.com/index?username=BENUTZERNAME&missingexpansion=1

    Damit hat man schon einmal "alles, was fehlt"!

    Das ist bei mir eine ganze Menge, d.h. um herauszufinden, was wirklich "neu" ist, da hilft diese Liste noch nicht wirklich. Was man zusätzlich benötigt ist ein Diff-Tool. Wenn jemand Unix/Linux nutzt, da muss ich wahrscheinlich nichts weiter erklären. Für Windows gibt es bspw. WinMerge. Ich selbst nutze eine Lösung über TortoiseGit / TortoiseSVN, d.h. die Liste ist versioniert und wird als Textdatei gespeichert. Und wenn die Datei mit der Liste dann ein rotes Symbol trägt, dann weiß ich, dass es da was neues gibt und ich kann das eingebaute Diff-Tool nutzen, um Details herauszufinden.

    Letzter Baustein war für mich dann noch ein Skript, welches die Textdatei mit den fehlenden Erweiterungen automatisch auf der Festplattte ablegt. Dann muss ich auch nicht dumm in einem Browser rumklicken, die Textdatei speichern etc. Dieses Skript möchte ich hier auch mit euch teilen, evtl. kann jemand sowas auch brauchen. Vorweg: es ist jetzt alles andere als sauber, und ich habe z.B. auch festgestellt, dass die oben verlinkte Seite manchmal einen Timeout verursacht (evtl. ist BGG nicht so schnell mit dem Export), und das Skript fängt dieses Problem ab.

    Voraussetzungen:

    - Skript als BATCH/BAT-Datei speichern (Windows)

    - Lynx-Browser irgendwo ablegen: Lynx (Browser) – Wikipedia

    - Die Einstellungen im Bereich "Settings" sollten für euch angepasst werden

    Skript:

  • Hi,

    ich haben mir auch schon einmal so etwas gebastelt. Allerdings habe ich mir dir Daten immer direkt von bgg geholt. Die haben ja ne xml api.

    Hier ein älterer Report:

    Sammlung von JensG

    Das Problem - zumindest bei mir, da ich zu jedem Spiel die bgg Bewertungen haben wollte - sind die Anzahl der requests. Trotz mehrerer Threads dauert es nett größeren Sammlungen ewig.

    Bgg hat vieles im Cache und kann die Anfragen direkt bedienen. Bei manchen Sachen muss bgg erst die Daten in den Cache laden, weshalb man manche requests wiederholen muss (mit Wartezeit).

    Hinzu kommt noch, dass bgg verständlicherweise sich vor zu vielen Anfragen schützen möchte (dos). Deshalb kann man nicht - mit der gleichen ip - zu viele Anfragen per Sekunde stellen. Also auch hier eine Bremse. (Natürlich gehört es zum guten Ton die Server von bgg nicht unnötig zu belasten).

    Ich wollte das aber immer nochmal ran... Bisher aber nicht mehr dazu gekommen.

  • ja, bei mir, ca. 2.700 oder so Titel kommt folgende Meldung:

    "An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command"

    Ich gebe hier, auch wenn ich es im Text nicht explizit erwähne, immer meine persönliche Meinung wieder.

  • ja, bei mir, ca. 2.700 oder so Titel kommt folgende Meldung:

    "An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command"

    Funktioniert nicht beim ersten Mal, richtig. Versuch es ein zweites Mal, und es funktioniert, jedenfalls bekomme ich deine Liste beim zweiten Aufruf ziemlich schnell. Genau deshalb hat das Skript eine Schleife. Wie gesagt, BGG braucht wahrscheinlich ein wenig bis die Daten zur Verfügung stehen und abgerufen werden können.

  • ja, bei mir, ca. 2.700 oder so Titel kommt folgende Meldung:

    "An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command"

    ...genau die Meldung kam bei mir auch...

    Nach drei Versuchen mit dieser Meldung als Ergebnis habe ich es gelassen...

    Schont auch sicherlich den Geldbeutel 8o

  • Voraussetzungen:

    - Skript als BATCH/BAT-Datei speichern (Windows)

    - Lynx-Browser irgendwo ablegen: Lynx (Browser) – Wikipedia

    - Die Einstellungen im Bereich "Settings" sollten für euch angepasst werden

    Wow. Ein Batch-File. Um Obi Wan zu zitieren: "Das ist ein Name den ich seit langem nicht mehr gehoert habe." :)

    Die Schleife ist da noch nicht drin, aber unter Linux (und ziemlich sicher auch auf dem Mac) duerfte das hier das gleiche Ergebnis bringen (USERNAME mit dem BGG-Namen ersetzen):

    Code
    curl -s "http://bggcompanion.herokuapp.com/index?username=USERNAME&missingexpansion=1" | sed -e 's/<[^>]*>//g;/^\t/d'

    In diesem speziellen Fall kann sed das HTML in Text umwandeln. Allgemein ist ein Browser (lynx, w3m, links, elinks...) besser geeignet, aber sowas hat nicht jeder.

    Edit: Hier nochmal mit Schleifchen, das Ergebnis landet in liste.txt. ;)

    Code
    while :; do [ $(curl -s "http://bggcompanion.herokuapp.com/index?username=USERNAME&missingexpansion=1" | sed -e 's/<[^>]*>//g;/^\t/d' | tee liste.txt | wc -l) -gt 1000 ] && break; done

    Disclaimer: Bitte nichts reininterpretieren. Ich will damit nichts ueber die Batchdatei sagen. Ausser vielleicht dass ich die nicht haette schreiben koennen. Shell ist mein Steckenpferd, ich denke bei sowas reflexartig darueber nach wie ich es machen wuerde. Und die Idee mit der Schleife war so merkwuerdig dass ich selbst nicht damit gerechnet habe dass das funktionieren wuerde. :D

    Einmal editiert, zuletzt von qeylIS (26. März 2021 um 23:36) aus folgendem Grund: Schleifchen und Disclaimer zugefuegt.