Решение Python для анализа повторяемости календаря Google - PullRequest
3 голосов
/ 10 ноября 2010

Я пытаюсь разобрать поле повторения GCal.Обычно это выглядит так:

DTSTART;TZID=Europe/Kiev:20101111T140000
DTEND;TZID=Europe/Kiev:20101111T150000
RRULE:FREQ=DAILY;UNTIL=20101112T120000Z
BEGIN:VTIMEZONE
TZID:Europe/Kiev
X-LIC-LOCATION:Europe/Kiev
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
TZNAME:EEST
DTSTART:19700329T030000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
TZNAME:EET
DTSTART:19701025T040000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE

Мне нужно извлечь ценную для меня часть: DTSTART события, DTEND, RRULE и другие поля iCaledar.Есть ли существующее решение для этого?

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

Вы можете попробовать фантастическую библиотеку python-dateutil (http://labix.org/python-dateutil).

1 голос
/ 14 ноября 2010

Я использую пакет mxm icalendar:

http://codespeak.net/icalendar/

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

0 голосов
/ 28 января 2012

Поскольку у меня похожая проблема, и я не смог найти что-либо, выполняющее работу, я только что выпустил на pypi небольшой проект, который не только даст вам значения DTSTART, DTEND, RRULE, RDATE, UID и SUMMARY, но также по заданному временному окну возвращаются все даты, которые полностью соответствуют правилам RRULE.

Вы можете получить его здесь: http://pypi.python.org/pypi/pyICSParser (обратите внимание, что я совсем не инженер-программист, так что соблюдение хороших практик кодирования неэффективно, и хотя я буду работать над документацией, оно все еще находится на очень ранней стадии)

...