Thunderbird: как получить доступ к календарю?

Я планирую разработать инструмент (работающий на ПК с Windows), который позволит сравнивать и объединять события календаря между различными календарями. Мое мобильное устройство и мой календарь Lightning должны поддерживаться.

Идея состоит в том, чтобы написать приложение для моего мобильного устройства, подключающегося к инструменту через TCP или UDP, чтобы инструмент мог изменять календарь мобильного устройства, отправляя команды в приложение.

К сожалению, я не знаю, как мне получить доступ к календарю Thunderbird Lightning с помощью моего инструмента.

Вопрос 1: (Возможность 1)

Можно ли получить доступ к чтению / записи календаря Thunderbird (Lightning) из другого приложения (например, путем прямого доступа к архиву SQLite) безопасным способом?

"Безопасным способом" означает: нет риска, что формат календаря изменится в следующем выпуске Lightning, а запись событий уничтожит его!

Вопрос 2: (Возможность 2)

Есть ли возможность доступа к данным календаря Lightning из другого плагина Thunderbird?

(Я искал об этом в Google в течение 2 часов и ничего не нашел!)

Можно ли создать "постоянное" TCP-соединение из плагина Thunderbird (выполнение некоторых операций в фоновом режиме)?

1 ответ

Я бы посоветовал против варианта 1, но если вам нужно, то вы можете проверить таблицу версий, чтобы увидеть, изменилась ли версия хранилища. Это случается не очень часто. Что касается доступа к данным календаря, вы можете связаться с менеджером календаря и событиями следующим образом:

Components.utils.import("resource://calendar/modules/calUtils.jsm"); 

let calmgr = cal.getCalendarManager();
let calendars = calmgr.getCalendars({});
let mycal = calendars[0]; // pick one

Календарь в mycal будет следовать calICalendar интерфейс, о котором вы можете прочитать здесь. Самые важные методы addItem, modifyItem, deleteItem, getItem а также getItems,

Что касается создания постоянного соединения из Thunderbird, вероятно, лучше всего использовать веб-сокеты, которые вы можете использовать из любого окна DOM. Возможно, имеет смысл создать свой собственный, например, с iframe,

Другие вопросы по тегам