Anzeige

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

Benutzeravatar
Dee

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

Beitragvon Dee » 5. September 2016, 18:47

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

Benutzeravatar
Knut
Spielkamerad
Beiträge: 39

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

Beitragvon Knut » 8. September 2016, 12:45

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

Benutzeravatar
Dee

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

Beitragvon Dee » 9. September 2016, 10:09

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.

Benutzeravatar
Knut
Spielkamerad
Beiträge: 39

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

Beitragvon Knut » 9. September 2016, 12:17

Danke für die Korrektur. Jetzt hat's funktioniert!

Benutzeravatar
Dee

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

Beitragvon Dee » 18. September 2016, 21:20

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

Benutzeravatar
Knut
Spielkamerad
Beiträge: 39

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

Beitragvon Knut » 19. September 2016, 15:48

Danke fürs Aktualisieren!
Grüße
Knut

Benutzeravatar
Dee

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

Beitragvon Dee » 22. September 2016, 07:50

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.

Benutzeravatar
Dee

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

Beitragvon Dee » 23. September 2016, 20:31

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.

Benutzeravatar
Dee

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

Beitragvon Dee » 1. Oktober 2016, 09:59

Kleines Update, bei dem einige Doppelungen entfernt und Sonderzeichen ersetzt wurden.

Benutzeravatar
Hartmut Th.
Spielkind
Beiträge: 13
Kontakt:

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

Beitragvon Hartmut Th. » 1. Oktober 2016, 11:35

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).

Benutzeravatar
Dee

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

Beitragvon Dee » 2. Oktober 2016, 14:50

@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?

Benutzeravatar
Knut
Spielkamerad
Beiträge: 39

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

Beitragvon Knut » 2. Oktober 2016, 15:54

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.

Benutzeravatar
Dee

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

Beitragvon Dee » 3. Oktober 2016, 10:49

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. :(

Benutzeravatar
Dee

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

Beitragvon Dee » 8. Oktober 2016, 09:37

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.

Benutzeravatar
Knut
Spielkamerad
Beiträge: 39

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

Beitragvon Knut » 8. Oktober 2016, 11:56

Nochmal danke für die Arbeit! Bin ein intensiver Nutzer. Siehe auch https://goo.gl/OhXHsY
;-)


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste