Fix steam yaml import (#72245)

* Fix steam yaml import

* uno mas
This commit is contained in:
Robert Hillis 2022-05-21 07:31:24 -04:00 committed by GitHub
parent 6c4ba07bd1
commit a152449b72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 3 deletions

View File

@ -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.""" """Handle common flow input validation."""
steam.api.key.set(user_input[CONF_API_KEY]) steam.api.key.set(user_input[CONF_API_KEY])
interface = steam.api.interface("ISteamUser") 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"] return names["response"]["players"]["player"]
@ -75,6 +80,9 @@ class SteamFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
return self.async_abort(reason="reauth_successful") return self.async_abort(reason="reauth_successful")
self._abort_if_unique_id_configured() self._abort_if_unique_id_configured()
if self.source == config_entries.SOURCE_IMPORT: if self.source == config_entries.SOURCE_IMPORT:
res = await self.hass.async_add_executor_job(
validate_input, user_input, True
)
accounts_data = { accounts_data = {
CONF_ACCOUNTS: { CONF_ACCOUNTS: {
acc["steamid"]: acc["personaname"] for acc in res acc["steamid"]: acc["personaname"] for acc in res

View File

@ -56,7 +56,7 @@ class SteamDataUpdateCoordinator(DataUpdateCoordinator):
} }
for k in players: for k in players:
data = self.player_interface.GetSteamLevel(steamid=players[k]["steamid"]) 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 return players
async def _async_update_data(self) -> dict[str, dict[str, str | int]]: async def _async_update_data(self) -> dict[str, dict[str, str | int]]: