Page 1 of 1

Python API pentru boardgamegeek.com

Posted: 13 Aug 2014, 10:45
by lcosmin
Dacă e cineva programator Python, am rescris un modul pentru a accesa ușor http://www.boardgamegeek.com. Îl puteți instala cu:

Code: Select all

pip install boardgamegeek
Feedback welcome :D

Re: Python API pentru boardgamegeek.com

Posted: 13 Aug 2014, 11:24
by andreimic
lcosmin wrote:Dacă e cineva programator Python, am rescris un modul pentru a accesa ușor http://www.boardgamegeek.com
[...]
Feedback welcome :D
Am văzut că e bazat pe cel scris de philsstein, libBGG; cum e diferit al tău?

libBGG e folosit de cei de pe /r/boardgames pentru topul lor. Dacă e interes, am putea face ceva asemănător și pentru FBG. M-am mai gândit câteodată, dar din lipsă de motivație nu am mișcat nimic. De asemenea, există și tabelele făcute de suf și nu știu câtă valoare ar fi adus o schimbare.

Re: Python API pentru boardgamegeek.com

Posted: 13 Aug 2014, 11:34
by lcosmin
andreimic wrote:
lcosmin wrote:Dacă e cineva programator Python, am rescris un modul pentru a accesa ușor http://www.boardgamegeek.com
[...]
Feedback welcome :D
Am văzut că e bazat pe cel scris de philsstein, libBGG; cum e diferit al tău?

libBGG e folosit de cei de pe /r/boardgames pentru topul lor. Dacă e interes, am putea face ceva asemănător și pentru FBG. M-am mai gândit câteodată, dar din lipsă de motivație nu am mișcat nimic. De asemenea, există și tabelele făcute de suf și nu știu câtă valoare ar fi adus o schimbare.
Da, am plecat de la libBGG și l-am rescris în proporție destul de mare. Motivele au fost mai multe, în principal nu mi-a plăcut felul în care era programat (chestii de coding style), nu mergea pe Python 2.x, erau ceva probleme (de ex., API-ul BGG îți dă un mesaj de genul "try later" când încerci să listezi o colecție; libBGG reîncerca operația până găsea niște joace în răspuns - <item type="boardgame"> dar nu trata corect cazul când userul pur și simplu n-avea jocuri acolo).
Alte lucruri modificate: am folosit requests în loc de urllib, am scos cache-ul ăla din libBGG (care mi se părea urât) și l-am înlocuit cu requests-cache (care se integrează direct cu requests) și cam atât cred... (TL;DR: nu mi-a plăcut cum era scris originalul :lol: )

EDIT: A, și ca idee de viitor, ar fi interesant de suportat și celelate site-uri din familia BGG.