Пример #1
0
    async def async_get_events(self, start_date, end_date):
        """Get all events in a specific time frame."""
        event_list = []
        event_items = []

        try:
            events_items = ical.latest_events(self.name)
            _LOGGER.debug("Got Events for %s", self.name)

        except:
            None

        #events_items = ical.events(self.url, None, None, start_date, end_date )

        for event in events_items:
            uid = None
            if hasattr(event, 'uid'):
                uid = event.uid
            data = {
                'uid': uid,
                'title': event.summary,
                'start': self.get_date_formatted(event.start, event.all_day),
                'end': self.get_date_formatted(event.end, event.all_day),
                'location': event.location,
                'description': event.description
            }
            # Note that we return a formatted date for start and end here,
            # but a different format for self.event!
            event_list.append(data)

        return event_list
Пример #2
0
    def test_request_data(self):
        ical = "test/test_data/basic.ics"
        start = date(2017, 5, 18)
        end = date(2017, 5, 19)
        key = "basic"

        icalevents.request_data(key, url=None, file=ical, string_content=None, start=start, end=end, fix_apple=False)

        self.assertTrue(icalevents.all_done(key), "request is finished")
        self.assertEqual(len(icalevents.latest_events(key)), 2, "two events are found")
Пример #3
0
    def test_events_async_url(self):
        url = "https://raw.githubusercontent.com/irgangla/icalevents/master/test/test_data/basic.ics"
        start = date(2017, 5, 18)
        end = date(2017, 5, 19)
        key = "basic"

        icalevents.events_async(key, url=url, file=None, start=start, end=end)

        sleep(4)

        self.assertTrue(icalevents.all_done(key), "request is finished")
        self.assertEqual(len(icalevents.latest_events(key)), 2, "two events are found")
Пример #4
0
    def test_events_async(self):
        ical = "test/test_data/basic.ics"
        start = date(2017, 5, 18)
        end = date(2017, 5, 19)
        key = "basic"

        icalevents.events_async(key, url=None, file=ical, start=start, end=end)

        sleep(4)

        self.assertTrue(icalevents.all_done(key), "request is finished")
        self.assertEqual(len(icalevents.latest_events(key)), 2, "two events are found")
Пример #5
0
    def update(self):
        # """Get the latest data."""

        _LOGGER.debug("Updating %s", self.name)

        ical.events_async(self.name, self.url)

        event_items = []
        try:
            events_items = ical.latest_events(self.name)
            _LOGGER.debug("Got Events %s", self.name)
        except:
            None

        temp_event = None

        right_now = arrow.utcnow()

        for event in events_items:

            ar_start = arrow.get(event.start)
            ar_end = arrow.get(event.end)

            if (ar_end < right_now) or (ar_start > right_now):
                continue

            if temp_event is None:
                temp_event = event
            elif arrow.get(temp_event.end) > ar_end:
                temp_event = event

        if temp_event is None:
            self.event = None
            return True

        self.event = {
            'summary': temp_event.summary,
            'start': self.get_hass_date(temp_event.start, temp_event.all_day),
            'end': self.get_hass_date(temp_event.end, temp_event.all_day),
            'location': temp_event.location,
            'description': temp_event.description
        }

        return True
Пример #6
0
            if not line:
                break

            name, url = line.split(maxsplit=1)
            name = name.strip()
            url = url.strip()

            fix_apple = False
            if name == "icloud":
                fix_apple = True

            key = "req_%d" % counter
            counter += 1
            keys.append(key)
            events_async(key, url, fix_apple=fix_apple)

    while keys:
        print("%d request running." % len(keys))

        for k in keys[:]:
            if all_done(k):
                print("Request %s finished." % k)
                keys.remove(k)

                es = latest_events(k)

                for e in es:
                    print(e)

        sleep(2)