30 lines
1014 B
Python
30 lines
1014 B
Python
from typing import Any
|
|
from boardgamegeek import BGGClient
|
|
|
|
from django.conf import settings
|
|
|
|
def lookup_boardgame_from_bgg(title: str) -> dict[str, Any]:
|
|
game_dict = {"title": title}
|
|
|
|
bgg = BGGClient(access_token=settings.BGG_ACCESS_TOKEN)
|
|
|
|
game = bgg.game(title)
|
|
|
|
if game:
|
|
game_dict["description"] = game.description
|
|
game_dict["published_year"] = game.yearpublished
|
|
game_dict["cover_url"] = game.image
|
|
game_dict["min_players"] = game.minplayers
|
|
game_dict["max_players"] = game.maxplayers
|
|
game_dict["recommended_age"] = game.minage
|
|
game_dict["rating"] = game.rating_average
|
|
game_dict["bgg_rank"] = game.bgg_rank
|
|
game_dict["base_run_time_seconds"] = int(game.playingtime) * 60 if game.playingtime else None
|
|
|
|
game_dict["mechanics"] = game.mechanics
|
|
game_dict["categories"] = game.categories
|
|
game_dict["designers"] = game.designers
|
|
game_dict["publishers"] = game.publishers
|
|
|
|
return game_dict
|