async def async_update(self): """Do the update.""" await self.data.async_update(self.hass) event = deepcopy(self.data.event) if event: event.summary, offset = extract_offset(event.summary, DEFAULT_OFFSET) start = O365CalendarData.to_datetime(event.start) self._offset_reached = is_offset_reached(start, offset) results = await self.data.async_o365_get_events( self.hass, dt.utcnow() + timedelta(hours=self._start_offset), dt.utcnow() + timedelta(hours=self._end_offset), ) if results: events = list(results) elif self._event: return else: events = [] self._data_attribute = [ format_event_data(x, self.data.calendar.calendar_id) for x in events ] self._data_attribute.sort(key=itemgetter("start")) self._event = event
def offset_reached(self) -> bool: """Return whether or not the event offset was reached.""" if self._event and self._offset_value: return is_offset_reached( self._event.start_datetime_local, self._offset_value ) return False
def update(self): """Update event data.""" self.data.update() self._event = self.data.event self._attr_extra_state_attributes = { "offset_reached": is_offset_reached(self._event.start_datetime_local, self.data.offset) if self._event else False }
def update(self) -> None: """Update event data.""" self.data.update() event = copy.deepcopy(self.data.event) if event is None: self._event = event return event = calculate_offset(event, self._offset) self._offset_reached = is_offset_reached(event) self._event = event
def update(self): """Update event data.""" self.data.update() event = copy.deepcopy(self.data.event) if event is None: self._event = event return event = calculate_offset(event, OFFSET) self._event = event self._attr_extra_state_attributes = {"offset_reached": is_offset_reached(event)}
def update(self): """Update event data.""" self.data.update() event = copy.deepcopy(self.data.event) if event is None: self._event = event return (summary, offset) = extract_offset(event["summary"], OFFSET) event["summary"] = summary self._event = event self._attr_extra_state_attributes = { "offset_reached": is_offset_reached(get_date(event["start"]), offset) }
async def async_update(self) -> None: """Get the latest data.""" try: items, _ = await self._calendar_service.async_list_events( self._calendar_id, search=self._search) except ServerNotFoundError as err: _LOGGER.error("Unable to connect to Google: %s", err) return # Pick the first visible event. Make a copy since calculate_offset mutates the event valid_items = filter(self._event_filter, items) self._event = copy.deepcopy(next(valid_items, None)) if self._event: calculate_offset(self._event, self._offset) self._offset_reached = is_offset_reached(self._event)
def update(self): """Get the current or next event.""" self.data.update() event = copy.deepcopy(self.data.event) if event is None: self._event = event return [summary, offset] = extract_offset(event.summary, OFFSET) event.summary = summary self._event = event self._attr_extra_state_attributes = { "offset_reached": is_offset_reached( event.start_datetime_local, offset ) }
async def async_update(self): """Update event data.""" _LOGGER.debug("Running ICalCalendarEventDevice async update for %s", self.name) await self.ical_events.update() event = copy.deepcopy(self.ical_events.event) if event is None: self._event = event return event = calculate_offset(event, OFFSET) self._event = copy.deepcopy(event) self._event["start"] = {} self._event["end"] = {} self._event["start"]["dateTime"] = event["start"].isoformat() self._event["end"]["dateTime"] = event["end"].isoformat() self._offset_reached = is_offset_reached(self.event) self._event["all_day"] = event["all_day"]
async def async_update(self) -> None: """Get the latest data.""" try: items, _ = await self._calendar_service.async_list_events( self._calendar_id, search=self._search) except ServerNotFoundError as err: _LOGGER.error("Unable to connect to Google: %s", err) return # Pick the first visible event and apply offset calculations. valid_items = filter(self._event_filter, items) self._event = copy.deepcopy(next(valid_items, None)) if self._event: (summary, offset) = extract_offset(self._event["summary"], self._offset) self._event["summary"] = summary self._offset_reached = is_offset_reached( get_date(self._event["start"]), offset)
async def async_update(self): await self.data.async_update(self.hass) event = copy.deepcopy(self.data.event) if event is None: self._event = event return event = calculate_offset(event, DEFAULT_OFFSET) self._offset_reached = is_offset_reached(event) events = list(await self.hass.async_add_executor_job(self.data.o365_get_events, datetime.now() + timedelta(hours=self.start_offset), datetime.now() + timedelta(hours=self.end_offset), ) ) self._data_attribute = [ format_event_data(x, self.data.calendar.calendar_id) for x in events ] self._data_attribute.sort(key=itemgetter("start")) self._event = event
def offset_reached(self) -> bool: """Return whether or not the event offset was reached.""" if self._event and self._offset_value: return is_offset_reached(get_date(self._event["start"]), self._offset_value) return False