[boardgames] Tighten up boardgame lookups
This commit is contained in:
@ -355,29 +355,6 @@ def manual_scrobble_board_game(
|
||||
return Scrobble.create_or_update(boardgame, user_id, scrobble_dict)
|
||||
|
||||
|
||||
def find_and_enrich_board_game_data(game_dict: dict) -> BoardGame | None:
|
||||
"""TODO Move this to a utility somewhere"""
|
||||
game = BoardGame.find_or_create(game_dict.get("bggId"))
|
||||
|
||||
if game:
|
||||
game.cooperative = game_dict.get("cooperative", False)
|
||||
game.highest_wins = game_dict.get("highestWins", True)
|
||||
game.no_points = game_dict.get("noPoints", False)
|
||||
game.uses_teams = game_dict.get("useTeams", False)
|
||||
game.bgstats_id = game_dict.get("uuid", None)
|
||||
if not game.rating:
|
||||
game.rating = game_dict.get("rating") / 10
|
||||
game.save()
|
||||
|
||||
if game_dict.get("designers"):
|
||||
for designer_name in game_dict.get("designers", "").split(", "):
|
||||
designer, created = BoardGameDesigner.objects.get_or_create(
|
||||
name=designer_name
|
||||
)
|
||||
game.designers.add(designer.id)
|
||||
return game
|
||||
|
||||
|
||||
def email_scrobble_board_game(
|
||||
bgstat_data: dict[str, Any], user_id: int
|
||||
) -> list[Scrobble]:
|
||||
@ -407,11 +384,11 @@ def email_scrobble_board_game(
|
||||
log_data = {}
|
||||
for game in game_list:
|
||||
logger.info(f"Finding and enriching {game.get('name')}")
|
||||
enriched_game = find_and_enrich_board_game_data(game)
|
||||
game_obj = BoardGame.find_or_create(game.get("bggId"), data=game)
|
||||
if game.get("isBaseGame"):
|
||||
base_games[game.get("id")] = enriched_game
|
||||
base_games[game.get("id")] = game_obj
|
||||
if game.get("isExpansion"):
|
||||
expansions[game.get("id")] = enriched_game
|
||||
expansions[game.get("id")] = game_obj
|
||||
|
||||
locations = {}
|
||||
for location_dict in bgstat_data.get("locations", []):
|
||||
|
||||
Reference in New Issue
Block a user