1) Я хочу написать приложение на календаре на python, которое будет взаимодействовать с gnome-shell-calendar. Я спрашивал вокруг, и мне сказали, что календарь оболочки Gnome использует
evolution-data-sever
для получения своей информации. Я обнаружил, что есть модуль Python
python-evolution
, который позволяет вам взаимодействовать с сервером эволюции. Но этот модуль уже устарел. Есть ли другой способ взаимодействия с сервером?
2) Я также заметил процесс под названием
gnome-shell-calendar-server
В чем разница между этим и эволюционным?
К Evolution Data Server 3.6 можно получить доступ через Python с помощью самоанализа gobject. Для этого также необходимо установить gir1.2-edataserver-1.2
и gir1-2-ecalendar-1.2
.
Например, следующий скрипт перечислит все события во всех календарях на сервере evolution-data.
#! /usr/bin/python
# -*- coding: utf-8 -*-
from gi.repository import ECalendar
from gi.repository import EDataServer
# Open a registry and get a list of all the calendars in EDS
registry = EDataServer.SourceRegistry.new_sync(None)
sources = EDataServer.SourceRegistry.list_sources(registry, EDataServer.SOURCE_EXTENSION_CALENDAR)
# Open each calendar containing events and get a list of all objects in them
for source in sources:
client = ECalendar.CalClient.new(source, ECalendar.CalSourceType.EVENT)
client.open_sync(False, None)
# ret is true or false depending if events are found or not
# values is a list of events
ret, values = client.get_object_list_as_comps_sync("#t", None)
if ret:
for value in values:
event = value.get_as_string()
print event