Как получить доступ к Apple iCal-Server через Python - PullRequest
3 голосов
/ 21 сентября 2010

Я пытаюсь получить доступ к iCal-серверу Apple на Mac OS X Snow Leopard Server через Python. Сервер запущен и работает с ним через iCal-Application. Теперь мне нужно получить доступ к этому серверу через Python, чтобы использовать его в качестве бэкэнда для планирования ресурсов. Я уже посмотрел CalDav-модуль (http://packages.python.org/caldav/index.html), но в приведенном примере не было найдено ни одного календаря, хотя основной URL-адрес правильный.

Так, как я могу прочитать события в пределах временного диапазона из календаря пользователя, используя python?

1 Ответ

1 голос
/ 19 октября 2010

[Не решение, но отладка]

Из примера, приведенного в документации модуля caldav:

from datetime import datetime
import caldav
from caldav.elements import dav, cdav

# Principal url
url = "https://user:pass@hostname/user/Calendar"

client = caldav.DAVClient(url)
principal = caldav.Principal(client, url)
calendars = principal.calendars()

Проблемы

  1. Пример URL-адреса не является основным URL-адресом для сервера ical
  2. , если вы посмотрите код calendars = Principal.calendars (), он игнорирует ответ.
  3. Если ваш основной URL неверен, то без выдачи каких-либо ошибок он вернет только пустой набор календарей.

Справка по отладке :

в объектах файлов.py, есть метод для DAVObject, который называется children.Вы можете изменить код, включив в него некоторую отладочную информацию.Если вы можете вставить следующее, а также вставить свою информацию в вопрос.

    response = self.client.propfind(self.url.path, body, depth)
    print response, self.url.path #provide additional info
    print response.raw  #provide additional info
    for r in response.tree.findall(dav.Response.tag):
...