# -*- coding: utf-8 -*- """ homeassistant.components.weblink ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Adds links to external webpages. For more details about this component, please refer to the documentation at https://home-assistant.io/components/weblink/ """ import logging from homeassistant.helpers.entity import Entity from homeassistant.util import slugify DOMAIN = "weblink" DEPENDENCIES = [] ATTR_NAME = 'name' ATTR_URL = 'url' ATTR_ICON = 'icon' _LOGGER = logging.getLogger(__name__) def setup(hass, config): """ Setup weblink component. """ links = config.get(DOMAIN) for link in links.get('entities'): if ATTR_NAME not in link or ATTR_URL not in link: _LOGGER.error("You need to set both %s and %s to add a %s", ATTR_NAME, ATTR_URL, DOMAIN) continue Link(hass, link.get(ATTR_NAME), link.get(ATTR_URL), link.get(ATTR_ICON)) return True class Link(Entity): """ Represent a link. """ def __init__(self, hass, name, url, icon): self.hass = hass self._name = name self._url = url self._icon = icon self.entity_id = DOMAIN + '.%s' % slugify(name) self.update_ha_state() @property def icon(self): """ Icon to use in the frontend, if any. """ return self._icon @property def name(self): """ Returns the name of the URL. """ return self._name @property def state(self): """ Returns the URL. """ return self._url