boardgamegeek
boardgamegeek copied to clipboard
Missing location in played game
Hello, I think, there is a issue when searching a location in a played game session. The location information is empty when you get a bgg play session
In [54]: t.plays(name=username, min_date=mindate.date())[0].location
In [55]: t.plays(name=username, min_date=mindate.date())[0].players[0].location
In [56]:
The procedure add_play_from_xml seems to search data on the player item.
player_data = {"username": player.attrib.get("username"), "user_id": int(player.attrib.get("userid", -1)), "name": player.attrib.get("name"), "startposition": player.attrib.get("startposition"), "new": player.attrib.get("new"), "win": player.attrib.get("win"), "rating": player.attrib.get("rating"), "score": player.attrib.get("score"), "color": player.attrib.get("color"), "location": player.attrib.get("location")}
I 've changed the loaders/play.py to avoid this issue. line 60 : add "location":play.attrib["location"], in the add_play_from_xml procedure
data = {"id": int(play.attrib["id"]), "date": play.attrib["date"], "quantity": int(play.attrib["quantity"]), "duration": int(play.attrib["length"]), "location":play.attrib["location"], "incomplete": int(play.attrib["incomplete"]), "nowinstats": int(play.attrib["nowinstats"]), # for User plays, will be overwritten with the user id when adding the play. "user_id": int(play.attrib.get("userid", -1)), "game_id": xml_subelement_attr(play, "item", attribute="objectid", convert=int), "game_name": xml_subelement_attr(play, "item", attribute="name"), "comment": xml_subelement_text(play, "comments"), "players": player_list}`
In [8]: t=BGGClient()
In [9]: BGGClient().plays(name=username, min_date=mindate.date())[0] Out[9]: <boardgamegeek.objects.plays.PlaySession at 0x6c839e8>
In [10]: BGGClient().plays(name=username, min_date=mindate.date())[0].location Out[10]: 'XXXXXXX'