2016-10-21 2 views
0

Я хотел бы использовать модуль python CalDAV для получения всей информации из события, мне удалось получить ссылку для события, но я не понимаю, как получить деталь события от этого события, поэтому у меня есть ссылка на событие:Как получить информацию о событии из ссылки на мероприятие?

https://mail.example.com:443/public-calendars/example.com/9A0F7585-A952-4E0C-868C-0C072A2D8740/9a0f7585-a952-4e0c-868c-0c072a2d8740-0000048a.eml 

И я пытаюсь это, чтобы получить информацию о событии:

event = 'https://mail.example.com:443/public-calendars/example.com/9A0F7585-A952-4E0C-868C-0C072A2D8740/9a0f7585-a952-4e0c-868c-0c072a2d8740-0000048a.eml' 
eventDetail = caldav.Event(event).load() 

Но я получаю сообщение об ошибке:

AttributeError: 'str' object has no attribute 'request' 

Я хотел бы получить что-то вроде этого:

BEGIN:VEVENT 
SUMMARY:event-title 
DTSTART;TZID=Europe/Warsaw:20150305T130000 
DTEND;TZID=Europe/Warsaw:20150305T140000 
DTSTAMP:20150624T170317Z 
UID:9149F870-5475-4120-9EE5-1A06E857807B 
SEQUENCE:1 
EXDATE;TZID=Europe/Warsaw:20150618T130000 
EXDATE;TZID=Europe/Warsaw:20150305T130000 
EXDATE;TZID=Europe/Warsaw:20150430T130000 
CREATED:20150226T105018Z 
DESCRIPTION: 
LAST-MODIFIED:20150616T094907Z 
LOCATION: 
RRULE:FREQ=WEEKLY;UNTIL=20150624T235959Z;INTERVAL=1 
STATUS:CONFIRMED 
TRANSP:OPAQUE 
BEGIN:VALARM 
ACTION:NONE 
TRIGGER;VALUE=DATE-TIME:19760401T005545Z 
UID:FC67F59E-5540-47BE-ACFA-FE229771EC11 
X-WR-ALARMUID:FC67F59E-5540-47BE-ACFA-FE229771EC11 
END:VALARM 
END:VEVENT 

Я хотел бы положить, что в переменную, так что я могу пройти через эту информацию и искать то, что мне нужно или отправить его в файл.

ответ

0

Глядя на модули caldav/objects.py я вижу:

def __init__(self, client=None, url=None, data=None, parent=None, id=None) 

Вы передаете в URL в качестве объекта клиента (1 параметр), отсюда и ошибки.

Может быть, это будет работать, но, вероятно, не (для загрузки, то вполне вероятно, нужен объект клиента):

eventDetail = caldav.Event(url=event).load() 

Но, глядя дальше модуля я вижу event_by_url на календаре объекта:

class Calendar(DAVObject): 
    ... 
    def event_by_url(self, href, data=None): 

Вероятно, у вас уже есть доступ к календарным объектам, таким образом, я предполагаю, что это может быть простой:

event = calendar.event_by_url("/calendars/123.ics") 
+0

Я узнал, что это будет в основном напечатать конкретное событие: – dsturlan

+0

print event.data Тогда вы можете использовать разные объекты в событии, например, имя: print event.name – dsturlan

Смежные вопросы