Changelog

1.0.0

  • Massive refactoring. Module is now incompatible with the previous version and it can be installed

via pip install boardgamegeek2

0.13.2

  • Forgot to bump up version with the previous release

0.13.1

Changes

  • If boardgamegeek.games.BoardGame.search() is called without specifying search_type, this defaults to [“boardgame”]

Fixes

  • Correcting negative years that are returned by BGG’s XMLAPI (when doing searches) as very large numbers.

0.13.0

Features

  • Added the choose parameter to boardgamegeek.api.BoardGameGeek.game() which lets you control how the “right” game is selected when searching by name. One of “first”, “recent” and “best-rank” can be specified in order to select the first search result, the most recently published one or the best ranked.

0.12.1

Changes

  • Properties which returned lists no longer return None in case data is missing, but an empty list (e.g. for boardgamegeek.games.BoardGame)
  • Updated documentation

0.12.0

Changes

  • Deprecated numeric values for the search_type parameter of boardgamegeek.games.BoardGame.search(). Accepts list of strings as arguments instead, for consistency with the rest of the functions.

0.11.2

Fixes

  • Searching for games with spaces in the name didn’t work because of manually replacing the spaces with ‘+’

0.11.1

Changes

  • Documentation fixups

0.11.0

Changes

  • URLs for images and thumbnails are converted to proper URLs (the API returns them as “//cf.geekdo-images.com/images/...”)

Features

  • The boardgamegeek.games.BoardGame has a new integer property (None if missing), boardgame_rank
  • The boardgamegeek tool: added -i, which allows querying by game id
  • The boardgamegeek tool: added –most-recent (default) and –most-popular which allow the -g option to give information on a different game when the “search-by-name” returns multiple results.

0.10.1

Changes

  • Reduced default requests_per_minute to 30, for safety

0.10.0

Features

  • Added a mechanism which makes sure the library doesn’t send requests too fast to BGG, triggering their protection (HTTP error 503). It does this by serializing all the requests and making sure there’s enough waiting time between them so that the configured requests_per_minute is respected.

Fixes

  • Fixed the retry mechanism, allowing retries=0 (meaning no retries at all). Before, the code would fail if the user specified retires=0

0.9.0

Changes

  • Since the BoardGameGeek API and site support HTTPS along with HTTP (and will be fully transitioned to HTTPS in the future), this library now uses HTTPS by default. To disable this behaviour, pass disable_ssl=True when creating a boardgamegeek.api.BoardGameGeek

0.8.1

Fixes

  • Infinite recursion when unpickling objects

0.8.0

Features

  • Fetching plays has support for min_date, max_date (thanks tomusher!)

0.7.1

Fixes

  • Not expecting the score of a player to be a number anymore (using the string as returned by the BGG API)

0.7.0

Changes

  • The XML API2 seems to throttle requests by returning HTTP 503 ; added a delay and retry in the code to try to deal with this

Features

  • When retrieving the plays, players are also returned, along with their data.

0.6.0

Changes

  • Improved code in an attempt to prevent exceptions when trying to deal with invalid data coming from the remote XML data

Fixes

  • Fixed issue #12 (an edge case which lead to comparing None to int)

0.5.0

Features

  • Added a new function boardgamegeek.api.BoardGameGeek.games() which takes a name as argument and returns a list of boardgamegeek.games.BoardGame with all the games with that name.

0.4.3

Changes

  • When calling boardgamegeek.api.BoardGameGeek.game() with a name, return the most recently published result instead of the first one, in case of multiple results.

0.4.2

Changes

  • Increased default number of retries and timeout

0.4.0

Changes

  • The calls to the BGG API will be automatically retried two times, with a timeout of 10 seconds. This behaviour can be controlled via the retries=, timeout= and retry_delay= parameters.

Features

  • Added patch from philsstein to automatically increase timeout and retry request on timeout

0.3.0

Changes

  • Added a property to boardgamegeek.games.BoardGame, expansion which indicates if this item is an expansion or not
  • Changed the expansions property of boardgamegeek.games.BoardGame, now it returns a list of boardgamegeek.things.Thing for each expansion the game has
  • Added a property to boardgamegeek.games.BoardGame, extends which returns a list of boardgamegeek.things.Thing for each item this game is an extension to

0.2.0 (unreleased)

Changes

  • Changed the object hierarchy, replaced BasicUser, BasicGuild, BasicGame with a boardgamegeek.things.Thing which has a name and an id

Features

  • Added support for retrieving the hot lists

0.1.0

Features

  • Allowing the user to specify timeouts for the requests library

0.0.14

Changes

  • The .last_login property of an boardgamegeek.user.User object now returns a datetime.datetime

Features

  • Added support for an user’s top and hot lists

Bugfixes

  • Exceptions raised from get_parsed_xml_response() where not properly propagated to the calling code

0.0.13

Features

  • Improved code for fetching an user’s buddies and guilds
  • Improved code for fetching guild members
  • Added support for listing Plays by user and by game

0.0.12

Features

  • Added some basic argument validation to prevent pointless calls to BGG’s API
  • When some object (game, user name, etc.) is not found, the functions return None instead of raising an exception

0.0.11

Features

  • Collections and Guilds are now iterable

Bugfixes

  • Fixed __str__ for Collection

0.0.10

Features

  • Updated documentation
  • Improved Python 3.x compatibility (using unicode_literals)
  • Added Travis integration

Bugfixes

  • Fixed float division for Python 3.x

0.0.9

Features

  • Added support for retrieving an user’s buddy and guild lists
  • Started implementing some basic unit tests

Bugfixes

  • Fixed handling of non-existing user names
  • Properly returning the maximum number of players for a game