Seite 1 von 1

Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 5. September 2016, 18:47
von Dee
Wie auch schon die zwei Jahre zuvor habe ich ein Skript geschrieben, welches mir die Spieledaten aus der BGG-Liste extrahiert und in ein schönes Tabellenkalkulationsformat (CSV) ausgibt. Für mich ist das wesentlich einfacher die einzelnen Einträge dann Zeile für Zeile durchzugehen als durch 25 Seiten Spiele zu scrollen. Vor allem aktualisiert das Skript bei nachfolgenden Aufrufen die Liste und markiert neue Einträge, sodass man so schneller nur das Delta findet.

Das Skript wurde unter Linux geschrieben und getestet (Ubuntu 16.04) und setzt auf Bash und TCL.

Initialaufruf ist:

Code: Alles auswählen

./update_messe16.sh > 160905.csv

Das leitet die Ausgabe in eine CSV-Datei um, die man dann beispielsweise mit LibreOffice öffnen und editieren kann:

Code: Alles auswählen

libreoffice 160905.csv

Später (z.B. morgen) sähe der Aufruf dann so aus:

Code: Alles auswählen

./update_messe16.sh 160905.csv > 16906.csv

Pro Tag werden die Daten maximal einmal von BGG geladen (das dauert eine Weile, weil die BGG-Seite einfach so langsam ist). Das heißt, wenn man das Skript zweimal am Tag ausführt, passiert nichts. Danach werden alle Daten extrahiert und mit einer ggf. bestehenden CSV-Liste abgeglichen.

Neue Einträge tragen in der ersten Spalte ein "X"; neue Einträge, die beim letzten Aufruf schon da waren ein "Y". Die zweite Spalte trägt ein X, wenn ein Eintrag bereits da war, aber verändert wurde. Und wenn Spiele wieder rausfallen, dann steht in der zweiten Spalte ein "D".

Ich extrahiere den Verlag, Spielname, Standnummer, Spieleranzahl, Alter, Preis (in Euro), Sprache und den BGG-Link. In der Liste ist dann Platz für eine eigene Priorisierung (z.B. 1 = Must see, ..., 999 = ignore) und Kommentare.

Ggf. hilft das Skript ja wieder jemand (ich glaube, letztes Jahr, gab es den einen oder anderen Interessenten). Es gibt aber keine Garantie aufs Funktionieren (vor allem nicht unter Windows). Wenn aber Bugs drin sind, mache ich die natürlich raus. :)

Link zum Skript/Blogbeitrag: http://www.deesaster.org/blog/index.php?/archives/2680

Viele Grüße
Dee

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 8. September 2016, 12:45
von Knut
Hi,
danke für Dein Skript. Ich hatte es auch im vergangenen Jahr mehrfach genutzt (im Terminal auf einem Mac). Diesmal bekomme ich aber eine Fehlermeldung:

Code: Alles auswählen

Game name not in ascii: Shelby’s Knochen Mopsen
    while executing
"error "Game name not in ascii: $g_game""
    (procedure "checkGameTitleBGG" line 18)
    invoked from within
"checkGameTitleBGG $line"
    (procedure "readHtmlBGG" line 19)
    invoked from within
"readHtmlBGG $htmlfile"
    ("foreach" body line 2)
    invoked from within
"foreach htmlfile $htmfiles {
    readHtmlBGG $htmlfile
}"
    (file "./update_messe16.tcl" line 625)

Kannst Du helfen?
Danke im voraus
Knut

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 9. September 2016, 10:09
von Dee
Korrektur ist drin. Danke für den Hinweis.

Ich weiß nicht, ob ich da etwas zu restriktiv mit den Unicode-Zeichen bin, aber die ergaben bei mir bei der Ausgabe immer Probleme. Es kann aber sein, dass bei weiteren Spielen das Skript immer mal wieder aussteigt, weil ich nicht alle Unicode-Zeichen korrekt in nicht-Unicode konvertiert habe.

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 9. September 2016, 12:17
von Knut
Danke für die Korrektur. Jetzt hat's funktioniert!

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 18. September 2016, 21:20
von Dee
So, gab heute ein großes Update mit Bugfixes, da da noch Einiges fehlte:

* Mehr Preise extrahiert (nicht nur MSPR, sondern auch Price)
* CSV kann auch mit Anführungszeichen (Libreoffice-Standard-Export) eingelesen werden
* Spiele mit Zeitstempel "am" auslesen (peinlich, peinlich)

Downloadlink ist noch der gleiche!

Gruß Dee

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 19. September 2016, 15:48
von Knut
Danke fürs Aktualisieren!
Grüße
Knut

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 22. September 2016, 07:50
von Dee
So, mal wieder ein "kleines" Update: Ich habe nun doch die Spielbox-Einträge extrahiert. Interessant, dass aus den 655 Spielen von BGG und 867 Spielen der Spielbox dann insgesamt 1194 Spiele werden. Beide Listen sind also fern von vollständig oder sie sammeln Ihre Daten einfach nur aus anderen Quellen.

Die Doppelungen und unterschiedlichen Schreibweisen zu filtern ist dabei noch der größte Akt und es wird vor allem bei Neueinträgen passieren, dass die eine Liste "ABC" schreibt und die nächste "Abc" als Spiel- oder Verlagsname.

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 23. September 2016, 20:31
von Dee
Noch ein Update: Alle Spiele, die nur als Preview bzw. Demo angeboten werden, werden in der Spalte "Remarks" markiert, falls da noch nichts eingetragen ist.

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 1. Oktober 2016, 09:59
von Dee
Kleines Update, bei dem einige Doppelungen entfernt und Sonderzeichen ersetzt wurden.

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 1. Oktober 2016, 11:35
von Hartmut Th.
hab das Script eben auch mit cygwin auf Windows laufen lassen können - danke :-)
Hab mit dem Editor in die CSV-Ausgabedatei noch eine erste Zeile
sep=,
eingefügt, damit Excel das sauber öffnet (default Delimiter in Deutschland ist ja das Semikolon).

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 2. Oktober 2016, 14:50
von Dee
@Hartmut: Siehe erstes Posting:
Neue Einträge tragen in der ersten Spalte ein "X"; neue Einträge, die beim letzten Aufruf schon da waren ein "Y". Die zweite Spalte trägt ein X, wenn ein Eintrag bereits da war, aber verändert wurde. Und wenn Spiele wieder rausfallen, dann steht in der zweiten Spalte ein "D".


Und fragt Excel beim Import der CSV-Datei nicht nach, was das Trennzeichen ist?

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 2. Oktober 2016, 15:54
von Knut
Dee hat geschrieben:@Hartmut: Siehe erstes Posting:
Und fragt Excel beim Import der CSV-Datei nicht nach, was das Trennzeichen ist?


Excel weiß ich nicht; Open Office jedenfalls fragt nach.

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 3. Oktober 2016, 10:49
von Dee
Und wieder ein kleines Update, um die Namen zwischen Spielbox und BGG abzugleichen.

Ich fände es ja sehr schön, wenn es zwischen den beiden mal ein Miteinander anstatt ein Gegeneinander geben würde. Es ist echt aufwändig, die Doppelungen wegen unterschiedlicher Schreibweise herauszufinden. :(

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 8. Oktober 2016, 09:37
von Dee
Skript ein letztes Mal aktualisiert.

Für nächstes Jahr muss ich mir irgendwas ausdenken, dass es stabiler läuft, fürchte ich. Es bricht noch viel zu oft wegen Sonderzeichen und anderer Dinge ab.

Re: Spiel 16: Skript für Spiele-Liste zur Spiel 16

Verfasst: 8. Oktober 2016, 11:56
von Knut
Nochmal danke für die Arbeit! Bin ein intensiver Nutzer. Siehe auch https://goo.gl/OhXHsY
;-)