From a152449b72ee2db3f06ae2f87ed9b3d5202d04eb Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Sat, 21 May 2022 07:31:24 -0400 Subject: [PATCH] Fix steam yaml import (#72245) * Fix steam yaml import * uno mas --- homeassistant/components/steam_online/config_flow.py | 12 ++++++++++-- homeassistant/components/steam_online/coordinator.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/steam_online/config_flow.py b/homeassistant/components/steam_online/config_flow.py index 246d54c0bff..91965685969 100644 --- a/homeassistant/components/steam_online/config_flow.py +++ b/homeassistant/components/steam_online/config_flow.py @@ -23,11 +23,16 @@ from .const import ( ) -def validate_input(user_input: dict[str, str | int]) -> list[dict[str, str | int]]: +def validate_input( + user_input: dict[str, str | int], multi: bool = False +) -> list[dict[str, str | int]]: """Handle common flow input validation.""" steam.api.key.set(user_input[CONF_API_KEY]) interface = steam.api.interface("ISteamUser") - names = interface.GetPlayerSummaries(steamids=user_input[CONF_ACCOUNT]) + if multi: + names = interface.GetPlayerSummaries(steamids=user_input[CONF_ACCOUNTS]) + else: + names = interface.GetPlayerSummaries(steamids=user_input[CONF_ACCOUNT]) return names["response"]["players"]["player"] @@ -75,6 +80,9 @@ class SteamFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): return self.async_abort(reason="reauth_successful") self._abort_if_unique_id_configured() if self.source == config_entries.SOURCE_IMPORT: + res = await self.hass.async_add_executor_job( + validate_input, user_input, True + ) accounts_data = { CONF_ACCOUNTS: { acc["steamid"]: acc["personaname"] for acc in res diff --git a/homeassistant/components/steam_online/coordinator.py b/homeassistant/components/steam_online/coordinator.py index 78c850b0ac9..f210c449fa6 100644 --- a/homeassistant/components/steam_online/coordinator.py +++ b/homeassistant/components/steam_online/coordinator.py @@ -56,7 +56,7 @@ class SteamDataUpdateCoordinator(DataUpdateCoordinator): } for k in players: data = self.player_interface.GetSteamLevel(steamid=players[k]["steamid"]) - players[k]["level"] = data["response"]["player_level"] + players[k]["level"] = data["response"].get("player_level") return players async def _async_update_data(self) -> dict[str, dict[str, str | int]]: