"""Support for Hangouts notifications.""" import logging import voluptuous as vol from homeassistant.components.notify import ( ATTR_DATA, ATTR_MESSAGE, ATTR_TARGET, PLATFORM_SCHEMA, BaseNotificationService, ) from .const import ( CONF_DEFAULT_CONVERSATIONS, DOMAIN, SERVICE_SEND_MESSAGE, TARGETS_SCHEMA, ) _LOGGER = logging.getLogger(__name__) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( {vol.Required(CONF_DEFAULT_CONVERSATIONS): [TARGETS_SCHEMA]} ) def get_service(hass, config, discovery_info=None): """Get the Hangouts notification service.""" return HangoutsNotificationService(config.get(CONF_DEFAULT_CONVERSATIONS)) class HangoutsNotificationService(BaseNotificationService): """Send Notifications to Hangouts conversations.""" def __init__(self, default_conversations): """Set up the notification service.""" self._default_conversations = default_conversations def send_message(self, message="", **kwargs): """Send the message to the Google Hangouts server.""" target_conversations = None if ATTR_TARGET in kwargs: target_conversations = [] for target in kwargs.get(ATTR_TARGET): target_conversations.append({"id": target}) else: target_conversations = self._default_conversations messages = [] if "title" in kwargs: messages.append({"text": kwargs["title"], "is_bold": True}) messages.append({"text": message, "parse_str": True}) service_data = {ATTR_TARGET: target_conversations, ATTR_MESSAGE: messages} if kwargs[ATTR_DATA]: service_data[ATTR_DATA] = kwargs[ATTR_DATA] return self.hass.services.call( DOMAIN, SERVICE_SEND_MESSAGE, service_data=service_data )