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
示例#2
0
 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
示例#3
0
 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
     }
示例#4
0
 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
示例#5
0
文件: calendar.py 项目: 2Fake/core
 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)}
示例#6
0
 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)
     }
示例#7
0
    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)
示例#8
0
 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
         )
     }
示例#9
0
 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"]
示例#10
0
    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)
示例#11
0
 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
示例#12
0
 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