Files
HomeAssistantVS/custom_components/alexa_media/alexa_media.py
T
2026-07-17 10:12:15 -04:00

49 lines
1.5 KiB
Python

"""
Alexa Devices Base Class.
SPDX-License-Identifier: Apache-2.0
For more details about this platform, please refer to the documentation at
https://community.home-assistant.io/t/echo-devices-alexa-as-media-player-testers-needed/58639
"""
import logging
from alexapy import AlexaAPI, hide_email
from .const import DATA_ALEXAMEDIA
_LOGGER = logging.getLogger(__name__)
class AlexaMedia:
"""Implementation of Alexa Media Base object."""
def __init__(self, device, login) -> None:
"""Initialize the Alexa device."""
# Class info
self._login = login
self.alexa_api = AlexaAPI(device, login)
self.email = login.email
self.account = hide_email(login.email)
def check_login_changes(self):
"""Update Login object if it has changed."""
# _LOGGER.debug("Checking if Login object has changed")
try:
login = self.hass.data[DATA_ALEXAMEDIA]["accounts"][self.email]["login_obj"]
except (AttributeError, KeyError):
return
# _LOGGER.debug("Login object %s closed status: %s", login, login.session.closed)
# _LOGGER.debug(
# "Alexaapi %s closed status: %s",
# self.alexa_api,
# self.alexa_api._session.closed,
# )
if self.alexa_api.update_login(login):
_LOGGER.debug("Login object has changed; updating")
self._login = login
self.email = login.email
self.account = hide_email(login.email)