Skip to content

Instantly share code, notes, and snippets.

@commadelimited
Created March 6, 2017 21:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save commadelimited/68ec9ced0b50d0348bbf066af7109964 to your computer and use it in GitHub Desktop.
Save commadelimited/68ec9ced0b50d0348bbf066af7109964 to your computer and use it in GitHub Desktop.
Pull a list of unique played games for X-Y time period, print game name, id, designers, and play count.
from datetime import datetime
from boardgamegeek.api import BoardGameGeek
bgg = BoardGameGeek()
username = 'commadelimited'
start = '2013-01-01'
end = '2017-03-07'
mindate = datetime.strptime(start, '%Y-%m-%d')
maxdate = datetime.strptime(end, '%Y-%m-%d')
games = {}
designers = []
bgg = BoardGameGeek()
plays = bgg.plays(name=username, min_date=mindate, max_date=maxdate)
for play in plays:
if play.game_name in games:
plays = games[play.game_name].get('plays') + 1
games[play.game_name].update(plays=plays)
else:
games[play.game_name] = {
'game_id': play.game_id,
'game_name': play.game_name,
'plays': 1,
}
for game in games:
query = bgg.game(game_id=games[game].get('game_id'))
games[game].update(designers=query.designers)
print games[game]
@commadelimited
Copy link
Author

Results look like this:

{'game_id': 186793, 'designers': ['James Hudson'], 'plays': 5, 'game_name': 'Barnyard Roundup'}
{'game_id': 43570, 'designers': ['Friedemann Friese'], 'plays': 5, 'game_name': 'Friday'}
{'game_id': 114031, 'designers': ['Friedemann Friese'], 'plays': 1, 'game_name': 'Copycat'}
{'game_id': 207796, 'designers': ['Daniel Newman'], 'plays': 2, 'game_name': 'Ahead in the Clouds'}
{'game_id': 203430, 'designers': ['Friedemann Friese'], 'plays': 1, 'game_name': 'Fuji Flush'}
{'game_id': 4568, 'designers': ['(Uncredited)'], 'plays': 7, 'game_name': 'Racko Plus'}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment