Thunderbird:如何访问日历?

时间:2017-05-01 11:21:08

标签: thunderbird-addon thunderbird-lightning

我计划开发一种工具(在Windows PC上运行),可以比较和合并不同日历之间的日历事件。我的移动设备和Lightning日历应该得到支持。

我的想法是为我的移动设备编写一个通过TCP或UDP连接到该工具的应用程序,以便该工具能够通过向应用程序发送命令来修改移动设备的日历。

不幸的是,我不知道如何使用我的工具访问Thunderbird Lightning日历。

问题1:(可能性1)

是否可以安全地从其他应用程序(例如直接访问SQLite存档)读取/写入Thunderbird(Lightning)日历?

"以安全的方式"意味着:没有风险,日历格式在下一个Lightning版本中发生变化,写入事件将会破坏它!

问题2:(可能性2)

是否有可能从另一个Thunderbird插件访问Lightning日历数据?

(我在Google上搜索了2个小时但没有找到任何内容!)

是否有可能创建一个永久性的"来自Thunderbird插件的TCP连接(在后台运行某些操作)?

1 个答案:

答案 0 :(得分:0)

我会建议不要使用选项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界面,您可以阅读here。最重要的方法是addItemmodifyItemdeleteItemgetItemgetItems

至于在Thunderbird中创建永久连接,最好使用Web套接字,您应该能够在任何DOM窗口中使用它。创建自己的例如它可能是有意义的。使用iframe