Merge lp:~markjtully/zeitgeist-datasources/thunderbird into lp:zeitgeist-datasources/0.8

Proposed by Mark Tully
Status: Merged
Merged at revision: 168
Proposed branch: lp:~markjtully/zeitgeist-datasources/thunderbird
Merge into: lp:zeitgeist-datasources/0.8
Diff against target: 640 lines (+466/-14) (has conflicts)
13 files modified
MAINTAINERS (+1/-1)
configure.ac (+46/-12)
firefox/extension/chrome/content/module.js (+1/-1)
thunderbird/Makefile.am (+13/-0)
thunderbird/README (+10/-0)
thunderbird/extension/Makefile.am (+40/-0)
thunderbird/extension/chrome.manifest (+5/-0)
thunderbird/extension/chrome/content/event.js (+85/-0)
thunderbird/extension/chrome/content/module.js (+62/-0)
thunderbird/extension/chrome/content/zeitgeist.xul (+7/-0)
thunderbird/extension/defaults/preferences/prefs.js (+2/-0)
thunderbird/extension/install.rdf (+28/-0)
thunderbird/extension/license.txt (+166/-0)
Text conflict in configure.ac
To merge this branch: bzr merge lp:~markjtully/zeitgeist-datasources/thunderbird
Reviewer Review Type Date Requested Status
Manish Sinha (मनीष सिन्हा) Approve
Review via email: mp+79506@code.launchpad.net

Description of the change

Plugin for Thunderbird

To post a comment you must log in.
Revision history for this message
Seif Lotfy (seif) wrote :
Download full text (28.7 KiB)

I got a question...
lets say I receive an email from <email address hidden> in my seif <at> lotfy <dot> com
inbox
where are both infos stored... imho event origin should be the inbox address
while the sender address should be the subject.origin
Other than that its perfect
AWESOME job

On Mon, Oct 17, 2011 at 1:09 AM, Teester <email address hidden> wrote:

> Teester has proposed merging
> lp:~markjtully/zeitgeist-datasources/thunderbird into
> lp:zeitgeist-datasources.
>
> Requested reviews:
> Zeitgeist Data-Sources Team (zeitgeist-dataproviders)
> Related bugs:
> Bug #594215 in Zeitgeist Data-Sources: "Add thunderbird support"
> https://bugs.launchpad.net/zeitgeist-datasources/+bug/594215
>
> For more details, see:
>
> https://code.launchpad.net/~markjtully/zeitgeist-datasources/thunderbird/+merge/79506
>
> Plugin for Thunderbird
> --
>
> https://code.launchpad.net/~markjtully/zeitgeist-datasources/thunderbird/+merge/79506
> Your team Zeitgeist Data-Sources Team is requested to review the proposed
> merge of lp:~markjtully/zeitgeist-datasources/thunderbird into
> lp:zeitgeist-datasources.
>
> === modified file 'MAINTAINERS'
> --- MAINTAINERS 2011-06-04 21:08:58 +0000
> +++ MAINTAINERS 2011-10-16 23:07:05 +0000
> @@ -6,7 +6,7 @@
> Please thank our Contributers:
> * Travis Glenn Hansen - thansen
> * Jon Nettleton - jnettlet
> -* Mark Jtully - teester
> +* Mark Tully - teester
> * Tassilo Horn - tsdh
> * Patrick M. Niedzielski
> * Danielle Madeley
>
> === modified file 'configure.ac'
> --- configure.ac 2011-09-14 19:29:53 +0000
> +++ configure.ac 2011-10-16 23:07:05 +0000
> @@ -63,7 +63,7 @@
> AC_MSG_NOTICE([Requested to enable all plugins: ${all_plugins}])
>
> # The full list of plugins
> -allowed_plugins="bzr chrome eog geany gedit vim emacs tomboy telepathy
> xchat rhythmbox firefox totem-libzg firefox-36-libzg"
> +allowed_plugins="bzr chrome eog geany gedit vim emacs tomboy telepathy
> xchat rhythmbox firefox totem-libzg firefox-36-libzg thunderbird"
> # currently disabled = "epiphany"
>
> # npapi-plugin has a template Makefile.am, but don't use it directly
> @@ -155,10 +155,10 @@
> plugin_error_or_ignore "libzeitgeist not
> found"
> continue
> fi
> - if test "x$HAVE_GTK" = "xno"; then
> + if test "x$HAVE_GTK" = "xno"; then
> plugin_error_or_ignore "You need to install
> gtk development headers"
> continue
> - fi
> + fi
> PKG_CHECK_MODULES(GEANY, geany,
> [HAVE_GEANY=yes], [HAVE_GEANY=no])
> if test "${HAVE_GEANY}" != "yes" ; then
> @@ -179,7 +179,7 @@
> PKG_CHECK_MODULES(ZEITGEIST_SHARP, zeitgeist-sharp,
> ENABLE_ZEITGEIST_SHARP=yes,
> ENABLE_ZEITGEIST_SHARP=no)
> PKG_CHECK_MODULES(TOMBOY_ADDINS, tomboy-addins,
> - HAS_TOMBOY_ADDINS=yes,
> HAS_TOMBOY_ADDINS=no)
> + HAS_TOMBOY...

Revision history for this message
Seif Lotfy (seif) wrote :

I got a question...
lets say I receive an email from <email address hidden> in my seif <at> lotfy <dot> com
inbox
where are both infos stored... imho event origin should be the inbox address
while the sender address should be the subject.origin
Other than that its perfect
AWESOME job

Revision history for this message
Mark Tully (markjtully) wrote :

Just to make sure I understand:
Using the terminology from http://zeitgeist-project.com/docs/0.7/datamodel.html#event, the Actor parameter should be the inbox address rather than application://thunderbird.desktop, in order to tie the event to the email account rather than to Thunderbird?

So if my account at a@b.c gets an email entitled 'Hello' from X, with email address x@y.z, the event should look like:
  Event interpretation: EVENT_INTERPRETATION.RECEIVE_EVENT
  Event manifestation: EVENT_MANIFESTATION.SYSTEM_NOTIFICATION
  Actor: a@b.c
  Subject:
   Subject interpretation: MESSAGE.EMAIL
   Subject manifestation: MAILBOX_DATA_OBJECT
   url: Message uri
   mimetype: message/rfc822
   origin: x@y.z
   title: X - Hello
   storage: net

Revision history for this message
Siegfried Gevatter (rainct) wrote :

2011/10/22 Teester <email address hidden>:
> Just to make sure I understand:
> Using the terminology from http://zeitgeist-project.com/docs/0.7/datamodel.html#event, the Actor parameter should be the inbox address rather than application://thunderbird.desktop, in order to tie the event to the email account rather than to Thunderbird?

No, the actor is the application related to the event.

I think I'd add the account to which the message was send as a second
subject with subject_manifestation=MAILBOX.

Revision history for this message
Seif Lotfy (seif) wrote :

@RainCT or we can use it as the mailbox as the event.origin

@Teester we have a slot called event.origin (its not in the API)
in module.js<http://bazaar.launchpad.net/~markjtully/zeitgeist-datasources/thunderbird/revision/157/thunderbird/extension/chrome/content/module.js>
change
zeitgeist_event_new_full to send an extra argument origin right after
"actor"
I am not sure libzeitgeist supports this change yet I will bug one of the
devs about it. https://bugs.launchpad.net/libzeitgeist/+bug/879852

@mhr3 can u have a look please

On Sat, Oct 22, 2011 at 12:46 PM, Siegfried Gevatter <email address hidden>wrote:

> 2011/10/22 Teester <email address hidden>:
> > Just to make sure I understand:
> > Using the terminology from
> http://zeitgeist-project.com/docs/0.7/datamodel.html#event, the Actor
> parameter should be the inbox address rather than
> application://thunderbird.desktop, in order to tie the event to the email
> account rather than to Thunderbird?
>
> No, the actor is the application related to the event.
>
> I think I'd add the account to which the message was send as a second
> subject with subject_manifestation=MAILBOX.
>
> --
>
> https://code.launchpad.net/~markjtully/zeitgeist-datasources/thunderbird/+merge/79506
> Your team Zeitgeist Data-Sources Team is requested to review the proposed
> merge of lp:~markjtully/zeitgeist-datasources/thunderbird into
> lp:zeitgeist-datasources.
>

Revision history for this message
Siegfried Gevatter (rainct) wrote :

2011/10/22 Seif Lotfy <email address hidden>:
> @RainCT or we can use it as the mailbox as the event.origin
yeah

Revision history for this message
Manish Sinha (मनीष सिन्हा) (manishsinha) wrote :

Mark, I hope you got notified via mail about this. Please look into this whenever you get time

Revision history for this message
Mark Tully (markjtully) wrote :

It appears to me from testing that libzeitgeist will need to be changed to accommodate event.origin. I can add several subjects to an event easily enough, however.

So, as far as I can see, there are 3 options:

1: Commit what's here at the moment and patch the extension if libzeitgeist is changed. The Firefox dataprovider (at least) will also presumably need to be patched to work with changes in libzeitgeist.

2: Wait until libzeitgeist is changed, then commit the Thunderbird dataprovider with support for event.origin

3: Change the Thunderbird dataprovider to use 2 subjects, one defining the email and one defining the mailbox the email arrives to and then patch the extension if event.origin support arrives later.

Revision history for this message
Michal Hruby (mhr3) wrote :

3) sounds like a bad idea, I'd prefer 2), but I'm not sure whether we're going to add API to libzg soon enough. Need to talk to kamstrup.

Revision history for this message
Manish Sinha (मनीष सिन्हा) (manishsinha) wrote :

Hello Mark, I asked mhr3 and his response was that it is available in latest release (0.3.14)

158. By Mark Tully

Added an origin (the mailbox name) to events added to Zeitgeist
Bumped extension version to 0.2
Bumped em:maxversion in install.rdf to 17 (due out in October 2012)

Revision history for this message
Mark Tully (markjtully) wrote :

I've added support for event.origin to the branch now.

Revision history for this message
Manish Sinha (मनीष सिन्हा) (manishsinha) wrote :

Works fine on my side

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'MAINTAINERS'
2--- MAINTAINERS 2011-10-27 18:15:50 +0000
3+++ MAINTAINERS 2012-03-21 01:55:20 +0000
4@@ -6,7 +6,7 @@
5 Please thank our Contributers:
6 * Travis Glenn Hansen - thansen
7 * Jon Nettleton - jnettlet
8-* Mark Jtully - teester
9+* Mark Tully - teester
10 * Tassilo Horn - tsdh
11 * Patrick M. Niedzielski
12 * Danielle Madeley
13
14=== modified file 'configure.ac'
15--- configure.ac 2011-10-24 01:35:00 +0000
16+++ configure.ac 2012-03-21 01:55:20 +0000
17@@ -63,7 +63,11 @@
18 AC_MSG_NOTICE([Requested to enable all plugins: ${all_plugins}])
19
20 # The full list of plugins
21+<<<<<<< TREE
22 allowed_plugins="bzr chrome eog geany gedit vim emacs tomboy telepathy xchat rhythmbox firefox totem-libzg firefox-36-libzg monodevelop"
23+=======
24+allowed_plugins="bzr chrome eog geany gedit vim emacs tomboy telepathy xchat rhythmbox firefox totem-libzg firefox-36-libzg thunderbird"
25+>>>>>>> MERGE-SOURCE
26 # currently disabled = "epiphany"
27
28 # npapi-plugin has a template Makefile.am, but don't use it directly
29@@ -154,10 +158,10 @@
30 plugin_error_or_ignore "libzeitgeist not found"
31 continue
32 fi
33- if test "x$HAVE_GTK" = "xno"; then
34+ if test "x$HAVE_GTK" = "xno"; then
35 plugin_error_or_ignore "You need to install gtk development headers"
36 continue
37- fi
38+ fi
39 PKG_CHECK_MODULES(GEANY, geany,
40 [HAVE_GEANY=yes], [HAVE_GEANY=no])
41 if test "${HAVE_GEANY}" != "yes" ; then
42@@ -204,7 +208,7 @@
43 PKG_CHECK_MODULES(ZEITGEIST_SHARP, zeitgeist-sharp,
44 ENABLE_ZEITGEIST_SHARP=yes, ENABLE_ZEITGEIST_SHARP=no)
45 PKG_CHECK_MODULES(TOMBOY_ADDINS, tomboy-addins,
46- HAS_TOMBOY_ADDINS=yes, HAS_TOMBOY_ADDINS=no)
47+ HAS_TOMBOY_ADDINS=yes, HAS_TOMBOY_ADDINS=no)
48 PKG_CHECK_MODULES(GTK_SHARP, gtk-sharp-2.0,
49 HAS_GTK_SHARP=yes, HAS_GTK_SHARP=no)
50
51@@ -228,6 +232,8 @@
52 fi
53 AC_SUBST(ZEITGEIST_SHARP_LIBS)
54 ;;
55+ thunderbird)
56+ ;;
57 totem*)
58 if test "${with_vala}" != "yes" ; then
59 plugin_error_or_ignore "you need vala installed to use the ${plugin} plugin"
60@@ -265,7 +271,7 @@
61 plugin_error_or_ignore "${plugin} is not handled"
62 continue
63 ;;
64- esac
65+ esac
66
67 # Add the specified plugin
68 used_plugins2="${used_plugins2} ${plugin}"
69@@ -311,13 +317,13 @@
70 continue 2
71 ;;
72 firefox)
73- AC_CONFIG_FILES([
74- firefox/Makefile
75- firefox/extension/Makefile
76- ])
77- continue 2
78- ;;
79- firefox-36-libzg)
80+ AC_CONFIG_FILES([
81+ firefox/Makefile
82+ firefox/extension/Makefile
83+ ])
84+ continue 2
85+ ;;
86+ firefox-36-libzg)
87 AC_CONFIG_FILES([
88 firefox-36-libzg/Makefile
89 firefox-36-libzg/extension/Makefile
90@@ -329,19 +335,39 @@
91 AC_CONFIG_FILES([geany/Makefile])
92 continue 2
93 ;;
94+<<<<<<< TREE
95 gedit)
96+=======
97+ gedit)
98+>>>>>>> MERGE-SOURCE
99 AC_CONFIG_FILES([gedit/Makefile])
100 continue 2
101- ;;
102+ ;;
103 tomboy)
104 AC_CONFIG_FILES([tomboy/Makefile])
105 continue 2
106 ;;
107+<<<<<<< TREE
108 rhythmbox)
109+=======
110+ rhythmbox)
111+>>>>>>> MERGE-SOURCE
112 AC_CONFIG_FILES([rhythmbox/Makefile])
113 continue 2
114+<<<<<<< TREE
115 ;;
116 totem-libzg)
117+=======
118+ ;;
119+ thunderbird)
120+ AC_CONFIG_FILES([
121+ thunderbird/Makefile
122+ thunderbird/extension/Makefile
123+ ])
124+ continue 2
125+ ;;
126+ totem-libzg)
127+>>>>>>> MERGE-SOURCE
128 AC_CONFIG_FILES([totem-libzg/Makefile])
129 continue 2
130 ;;
131@@ -357,11 +383,19 @@
132 AC_CONFIG_FILES([emacs/Makefile])
133 continue 2
134 ;;
135+<<<<<<< TREE
136 telepathy)
137 AC_CONFIG_FILES([telepathy/Makefile])
138 continue 2
139 ;;
140 xchat)
141+=======
142+ telepathy)
143+ AC_CONFIG_FILES([telepathy/Makefile])
144+ continue 2
145+ ;;
146+ xchat)
147+>>>>>>> MERGE-SOURCE
148 AC_CONFIG_FILES([xchat/Makefile])
149 continue 2
150 ;;
151
152=== modified file 'firefox/extension/chrome/content/module.js'
153--- firefox/extension/chrome/content/module.js 2011-08-24 18:34:53 +0000
154+++ firefox/extension/chrome/content/module.js 2012-03-21 01:55:20 +0000
155@@ -1,6 +1,6 @@
156 var libzeitgeist = {
157
158- zeitgeistPath: "libzeitgeist-1.0.so",
159+ zeitgeistPath: "libzeitgeist-1.0.so.1",
160
161 lib: null,
162
163
164=== added directory 'thunderbird'
165=== added file 'thunderbird/Makefile.am'
166--- thunderbird/Makefile.am 1970-01-01 00:00:00 +0000
167+++ thunderbird/Makefile.am 2012-03-21 01:55:20 +0000
168@@ -0,0 +1,13 @@
169+SUBDIRS = extension
170+
171+# identifier for the TB profile in which 'make install' installs this extension
172+TARGET_PROFILE = *default*
173+
174+local-install: all
175+ $(MAKE) -C extension $@
176+ cp xpcom-thunderbird\@zeitgeist-project.com.xpi ~/.thunderbird/$(TARGET_PROFILE)/extensions/
177+
178+local-uninstall:
179+ $(MAKE) -C extension $@
180+ -rm -rf ~/.thunderbird/$(TARGET_PROFILE)/extensions/xpcom-thunderbird\@zeitgeist-project.com.xpi
181+
182
183=== added file 'thunderbird/README'
184--- thunderbird/README 1970-01-01 00:00:00 +0000
185+++ thunderbird/README 2012-03-21 01:55:20 +0000
186@@ -0,0 +1,10 @@
187+Links
188+=====
189+
190+Useful resources:
191+ https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes
192+
193+TODO
194+====
195+ * add events for attachments
196+ * add events for calendar if thunderbird has lightning intalled
197
198=== added directory 'thunderbird/extension'
199=== added file 'thunderbird/extension/Makefile.am'
200--- thunderbird/extension/Makefile.am 1970-01-01 00:00:00 +0000
201+++ thunderbird/extension/Makefile.am 2012-03-21 01:55:20 +0000
202@@ -0,0 +1,40 @@
203+SUBDIRS =
204+
205+extensiondir = $(datadir)/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
206+EXTENSIONS_SYMLINK = $(extensiondir)
207+
208+xul_extdir = $(datadir)/xul-ext-zeitgeist
209+dist_xul_ext_DATA = \
210+ license.txt \
211+ chrome.manifest \
212+ install.rdf \
213+ $(NULL)
214+
215+contentdir = $(xul_extdir)/chrome/content
216+dist_content_DATA = \
217+ chrome/content/zeitgeist.xul \
218+ chrome/content/zeitgeist.png \
219+ chrome/content/event.js \
220+ chrome/content/module.js \
221+ $(NULL)
222+
223+prefsdir = $(xul_extdir)/defaults/preferences
224+dist_prefs_DATA = \
225+ defaults/preferences/zeitgeist.js \
226+ $(NULL)
227+
228+install-exec-hook:
229+ $(MKDIR_P) $(DESTDIR)$(extensiondir)
230+ test -h "$(DESTDIR)$(EXTENSIONS_SYMLINK)" || $(LN_S) -f "$(DESTDIR)$(xul_extdir)" "$(DESTDIR)$(EXTENSIONS_SYMLINK)"
231+
232+# we want to allow also local install
233+EXTENSION_CONTENT = \
234+ $(dist_xul_ext_DATA) \
235+ defaults \
236+ chrome \
237+ $(NULL)
238+
239+local-install: all
240+ zip -r ../xpcom-thunderbird@zeitgeist-project.com.xpi $(EXTENSION_CONTENT)
241+
242+local-uninstall:
243
244=== added directory 'thunderbird/extension/chrome'
245=== added file 'thunderbird/extension/chrome.manifest'
246--- thunderbird/extension/chrome.manifest 1970-01-01 00:00:00 +0000
247+++ thunderbird/extension/chrome.manifest 2012-03-21 01:55:20 +0000
248@@ -0,0 +1,5 @@
249+content zeitgeist chrome/content/
250+
251+overlay chrome://messenger/content/messenger.xul chrome://zeitgeist/content/zeitgeist.xul
252+
253+locale zeitgeist en-US chrome/locale/en-US/
254
255=== added directory 'thunderbird/extension/chrome/content'
256=== added file 'thunderbird/extension/chrome/content/event.js'
257--- thunderbird/extension/chrome/content/event.js 1970-01-01 00:00:00 +0000
258+++ thunderbird/extension/chrome/content/event.js 2012-03-21 01:55:20 +0000
259@@ -0,0 +1,85 @@
260+var ZeitgeistNewMailListener = {
261+
262+ init: function() {
263+ var notificationService = Components.classes["@mozilla.org/messenger/msgnotificationservice;1"]
264+ .getService(Components.interfaces.nsIMsgFolderNotificationService);
265+ notificationService.addListener(this, notificationService.msgAdded);
266+ },
267+
268+ msgAdded: function(aMsgHdr) {
269+
270+ let folder = aMsgHdr.folder;
271+
272+ // Only add to zeitgeist if the folder the message is in is flagged as an inbox ("0x00001000")
273+ if (folder.flags & "0x00001000") {
274+
275+ let hdrParser = Components.classes["@mozilla.org/messenger/headerparser;1"]
276+ .getService(Components.interfaces.nsIMsgHeaderParser);
277+
278+ let uri = folder.getUriForMsg(aMsgHdr);
279+ let author = hdrParser.extractHeaderAddressName(aMsgHdr.mime2DecodedAuthor);
280+ let address = hdrParser.extractHeaderAddressMailboxes(aMsgHdr.author);
281+ let message_subject = aMsgHdr.mime2DecodedSubject
282+ let account = aMsgHdr.folder.server.prettyName
283+
284+ let subject = libzeitgeist.zeitgeist_subject_new_full( uri,
285+ "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email",
286+ "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MailboxDataObject",
287+ "message/rfc822",
288+ address,
289+ author + " - " + message_subject,
290+ "net");
291+
292+ let event = libzeitgeist.zeitgeist_event_new_full( "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent",
293+ "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SystemNotification",
294+ "application://thunderbird.desktop",
295+ subject,
296+ null);
297+
298+ libzeitgeist.zeitgeist_event_set_origin( event,
299+ account)
300+
301+ libzeitgeist.zeitgeist_log_insert_events_no_reply(libzeitgeist.log, event, null);
302+
303+ //Log event in Thunderbird's error console if logging pref is true
304+ var prefs = Components.classes["@mozilla.org/preferences-service;1"]
305+ .getService(Components.interfaces.nsIPrefBranch);
306+ if (prefs.getBoolPref("extensions.zeitgeist.log")) {
307+ zeitgeist.debug("Event added to zeitgeist:" +
308+ "\n\t\tEvent interpretation: EVENT_INTERPRETATION.RECEIVE_EVENT" +
309+ "\n\t\tEvent manifestation: EVENT_MANIFESTATION.SYSTEM_NOTIFICATION" +
310+ "\n\t\tActor: application://thunderbird.desktop" +
311+ "\n\t\tOrigin: " + account +
312+ "\n\t\tSubject:\n\t\t\tSubject interpretation: MESSAGE.EMAIL" +
313+ "\n\t\t\tSubject manifestation: MAILBOX_DATA_OBJECT" +
314+ "\n\t\t\turl: " + uri +
315+ "\n\t\t\tmimetype: message/rfc822" +
316+ "\n\t\t\torigin: " + address +
317+ "\n\t\t\ttitle: " + author + " - " + message_subject +
318+ "\n\t\t\tstorage: net");
319+ }
320+ }
321+ },
322+};
323+
324+var zeitgeist = {
325+ init: function() {
326+ ZeitgeistNewMailListener.init();
327+ libzeitgeist.init();
328+ },
329+
330+ uninit: function() {
331+
332+ libzeitgeist.shutdown();
333+ },
334+
335+ debug: function (aMessage) {
336+ var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
337+ .getService(Components.interfaces.nsIConsoleService);
338+ consoleService.logStringMessage("Zeitgeist Extension (" + new Date() + " ):\n\t" + aMessage);
339+ window.dump("Zeitgeist Extension: (" + new Date() + " ):\n\t" + aMessage + "\n");
340+ }
341+};
342+
343+window.addEventListener("load", function() {zeitgeist.init()}, false);
344+window.addEventListener("unload", function() {zeitgeist.uninit()}, false);
345
346=== added file 'thunderbird/extension/chrome/content/module.js'
347--- thunderbird/extension/chrome/content/module.js 1970-01-01 00:00:00 +0000
348+++ thunderbird/extension/chrome/content/module.js 2012-03-21 01:55:20 +0000
349@@ -0,0 +1,62 @@
350+var libzeitgeist = {
351+
352+ zeitgeistPath: "libzeitgeist-1.0.so.1",
353+
354+ lib: null,
355+
356+ init: function() {
357+
358+ Components.utils.import("resource://gre/modules/ctypes.jsm");
359+
360+ this.lib = ctypes.open(this.zeitgeistPath);
361+
362+ //Structures
363+ this._ZeitgeistEvent = new ctypes.StructType("_ZeitgeistEvent");
364+ this._ZeitgeistSubject = new ctypes.StructType("_ZeitgeistSubject");
365+ this._ZeitgeistLog = new ctypes.StructType("_ZeitgeistLog");
366+
367+ //Methods
368+ this.zeitgeist_event_new_full = this.lib.declare( "zeitgeist_event_new_full",
369+ ctypes.default_abi,
370+ ctypes.char.ptr,
371+ ctypes.char.ptr, //interpretation
372+ ctypes.char.ptr, //manifestation
373+ ctypes.char.ptr, //actor
374+ ctypes.char.ptr, //subject
375+ ctypes.voidptr_t);
376+
377+ this.zeitgeist_event_set_origin = this.lib.declare( "zeitgeist_event_set_origin",
378+ ctypes.default_abi,
379+ ctypes.voidptr_t,
380+ ctypes.char.ptr, //event
381+ ctypes.char.ptr); //origin
382+
383+ this.zeitgeist_subject_new_full = this.lib.declare( "zeitgeist_subject_new_full",
384+ ctypes.default_abi,
385+ ctypes.char.ptr,
386+ ctypes.char.ptr, //uri
387+ ctypes.char.ptr, //interpretation
388+ ctypes.char.ptr, //manfestation
389+ ctypes.char.ptr, //mimetype
390+ ctypes.char.ptr, //origin
391+ ctypes.char.ptr, //text
392+ ctypes.char.ptr); //storage
393+
394+ this.zeitgeist_log_new = this.lib.declare( "zeitgeist_log_new",
395+ ctypes.default_abi,
396+ ctypes.char.ptr );
397+
398+ this.zeitgeist_log_insert_events_no_reply = this.lib.declare( "zeitgeist_log_insert_events_no_reply",
399+ ctypes.default_abi,
400+ ctypes.void_t.ptr,
401+ ctypes.char.ptr, //log
402+ ctypes.char.ptr, //event
403+ ctypes.voidptr_t);
404+
405+ this.log = libzeitgeist.zeitgeist_log_new();
406+ },
407+
408+ shutdown: function() {
409+ this.lib.close();
410+ }
411+};
412
413=== added file 'thunderbird/extension/chrome/content/zeitgeist.png'
414Binary files thunderbird/extension/chrome/content/zeitgeist.png 1970-01-01 00:00:00 +0000 and thunderbird/extension/chrome/content/zeitgeist.png 2012-03-21 01:55:20 +0000 differ
415=== added file 'thunderbird/extension/chrome/content/zeitgeist.xul'
416--- thunderbird/extension/chrome/content/zeitgeist.xul 1970-01-01 00:00:00 +0000
417+++ thunderbird/extension/chrome/content/zeitgeist.xul 2012-03-21 01:55:20 +0000
418@@ -0,0 +1,7 @@
419+<?xml version="1.0"?>
420+<overlay id="zeitgeist" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
421+
422+ <script type="application/javascript" src="chrome://zeitgeist/content/module.js"></script>
423+ <script type="application/javascript" src="chrome://zeitgeist/content/event.js"></script>
424+
425+</overlay>
426
427=== added directory 'thunderbird/extension/chrome/locale'
428=== added directory 'thunderbird/extension/chrome/locale/en-US'
429=== added directory 'thunderbird/extension/defaults'
430=== added directory 'thunderbird/extension/defaults/preferences'
431=== added file 'thunderbird/extension/defaults/preferences/prefs.js'
432--- thunderbird/extension/defaults/preferences/prefs.js 1970-01-01 00:00:00 +0000
433+++ thunderbird/extension/defaults/preferences/prefs.js 2012-03-21 01:55:20 +0000
434@@ -0,0 +1,2 @@
435+pref("extensions.zeitgeist.log" , false);
436+
437
438=== added file 'thunderbird/extension/install.rdf'
439--- thunderbird/extension/install.rdf 1970-01-01 00:00:00 +0000
440+++ thunderbird/extension/install.rdf 2012-03-21 01:55:20 +0000
441@@ -0,0 +1,28 @@
442+<?xml version="1.0"?>
443+
444+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
445+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
446+
447+ <Description about="urn:mozilla:install-manifest">
448+ <em:id>thunderbird@zeitgeist-project.com</em:id>
449+ <em:version>0.2</em:version>
450+ <em:type>2</em:type>
451+
452+ <!-- Target Application this extension can install into,
453+ with minimum and maximum supported versions. -->
454+ <em:targetApplication>
455+ <Description>
456+ <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
457+ <em:minVersion>5.0</em:minVersion>
458+ <em:maxVersion>17.*</em:maxVersion>
459+ </Description>
460+ </em:targetApplication>
461+
462+ <!-- Front End MetaData -->
463+ <em:name>Zeitgeist</em:name>
464+ <em:description>Dataprovider for the zeitgeist framework</em:description>
465+ <em:creator>Mark Tully</em:creator>
466+ <em:homepageURL>http://launchpad.net/zeitgeist</em:homepageURL>
467+ <em:iconURL>chrome://zeitgeist/content/zeitgeist.png</em:iconURL>
468+ </Description>
469+</RDF>
470
471=== added file 'thunderbird/extension/license.txt'
472--- thunderbird/extension/license.txt 1970-01-01 00:00:00 +0000
473+++ thunderbird/extension/license.txt 2012-03-21 01:55:20 +0000
474@@ -0,0 +1,166 @@
475+ GNU LESSER GENERAL PUBLIC LICENSE
476+ Version 3, 29 June 2007
477+
478+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
479+ Everyone is permitted to copy and distribute verbatim copies
480+ of this license document, but changing it is not allowed.
481+
482+
483+ This version of the GNU Lesser General Public License incorporates
484+the terms and conditions of version 3 of the GNU General Public
485+License, supplemented by the additional permissions listed below.
486+
487+ 0. Additional Definitions.
488+
489+ As used herein, "this License" refers to version 3 of the GNU Lesser
490+General Public License, and the "GNU GPL" refers to version 3 of the GNU
491+General Public License.
492+
493+ "The Library" refers to a covered work governed by this License,
494+other than an Application or a Combined Work as defined below.
495+
496+ An "Application" is any work that makes use of an interface provided
497+by the Library, but which is not otherwise based on the Library.
498+Defining a subclass of a class defined by the Library is deemed a mode
499+of using an interface provided by the Library.
500+
501+ A "Combined Work" is a work produced by combining or linking an
502+Application with the Library. The particular version of the Library
503+with which the Combined Work was made is also called the "Linked
504+Version".
505+
506+ The "Minimal Corresponding Source" for a Combined Work means the
507+Corresponding Source for the Combined Work, excluding any source code
508+for portions of the Combined Work that, considered in isolation, are
509+based on the Application, and not on the Linked Version.
510+
511+ The "Corresponding Application Code" for a Combined Work means the
512+object code and/or source code for the Application, including any data
513+and utility programs needed for reproducing the Combined Work from the
514+Application, but excluding the System Libraries of the Combined Work.
515+
516+ 1. Exception to Section 3 of the GNU GPL.
517+
518+ You may convey a covered work under sections 3 and 4 of this License
519+without being bound by section 3 of the GNU GPL.
520+
521+ 2. Conveying Modified Versions.
522+
523+ If you modify a copy of the Library, and, in your modifications, a
524+facility refers to a function or data to be supplied by an Application
525+that uses the facility (other than as an argument passed when the
526+facility is invoked), then you may convey a copy of the modified
527+version:
528+
529+ a) under this License, provided that you make a good faith effort to
530+ ensure that, in the event an Application does not supply the
531+ function or data, the facility still operates, and performs
532+ whatever part of its purpose remains meaningful, or
533+
534+ b) under the GNU GPL, with none of the additional permissions of
535+ this License applicable to that copy.
536+
537+ 3. Object Code Incorporating Material from Library Header Files.
538+
539+ The object code form of an Application may incorporate material from
540+a header file that is part of the Library. You may convey such object
541+code under terms of your choice, provided that, if the incorporated
542+material is not limited to numerical parameters, data structure
543+layouts and accessors, or small macros, inline functions and templates
544+(ten or fewer lines in length), you do both of the following:
545+
546+ a) Give prominent notice with each copy of the object code that the
547+ Library is used in it and that the Library and its use are
548+ covered by this License.
549+
550+ b) Accompany the object code with a copy of the GNU GPL and this license
551+ document.
552+
553+ 4. Combined Works.
554+
555+ You may convey a Combined Work under terms of your choice that,
556+taken together, effectively do not restrict modification of the
557+portions of the Library contained in the Combined Work and reverse
558+engineering for debugging such modifications, if you also do each of
559+the following:
560+
561+ a) Give prominent notice with each copy of the Combined Work that
562+ the Library is used in it and that the Library and its use are
563+ covered by this License.
564+
565+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
566+ document.
567+
568+ c) For a Combined Work that displays copyright notices during
569+ execution, include the copyright notice for the Library among
570+ these notices, as well as a reference directing the user to the
571+ copies of the GNU GPL and this license document.
572+
573+ d) Do one of the following:
574+
575+ 0) Convey the Minimal Corresponding Source under the terms of this
576+ License, and the Corresponding Application Code in a form
577+ suitable for, and under terms that permit, the user to
578+ recombine or relink the Application with a modified version of
579+ the Linked Version to produce a modified Combined Work, in the
580+ manner specified by section 6 of the GNU GPL for conveying
581+ Corresponding Source.
582+
583+ 1) Use a suitable shared library mechanism for linking with the
584+ Library. A suitable mechanism is one that (a) uses at run time
585+ a copy of the Library already present on the user's computer
586+ system, and (b) will operate properly with a modified version
587+ of the Library that is interface-compatible with the Linked
588+ Version.
589+
590+ e) Provide Installation Information, but only if you would otherwise
591+ be required to provide such information under section 6 of the
592+ GNU GPL, and only to the extent that such information is
593+ necessary to install and execute a modified version of the
594+ Combined Work produced by recombining or relinking the
595+ Application with a modified version of the Linked Version. (If
596+ you use option 4d0, the Installation Information must accompany
597+ the Minimal Corresponding Source and Corresponding Application
598+ Code. If you use option 4d1, you must provide the Installation
599+ Information in the manner specified by section 6 of the GNU GPL
600+ for conveying Corresponding Source.)
601+
602+ 5. Combined Libraries.
603+
604+ You may place library facilities that are a work based on the
605+Library side by side in a single library together with other library
606+facilities that are not Applications and are not covered by this
607+License, and convey such a combined library under terms of your
608+choice, if you do both of the following:
609+
610+ a) Accompany the combined library with a copy of the same work based
611+ on the Library, uncombined with any other library facilities,
612+ conveyed under the terms of this License.
613+
614+ b) Give prominent notice with the combined library that part of it
615+ is a work based on the Library, and explaining where to find the
616+ accompanying uncombined form of the same work.
617+
618+ 6. Revised Versions of the GNU Lesser General Public License.
619+
620+ The Free Software Foundation may publish revised and/or new versions
621+of the GNU Lesser General Public License from time to time. Such new
622+versions will be similar in spirit to the present version, but may
623+differ in detail to address new problems or concerns.
624+
625+ Each version is given a distinguishing version number. If the
626+Library as you received it specifies that a certain numbered version
627+of the GNU Lesser General Public License "or any later version"
628+applies to it, you have the option of following the terms and
629+conditions either of that published version or of any later version
630+published by the Free Software Foundation. If the Library as you
631+received it does not specify a version number of the GNU Lesser
632+General Public License, you may choose any version of the GNU Lesser
633+General Public License ever published by the Free Software Foundation.
634+
635+ If the Library as you received it specifies that a proxy can decide
636+whether future versions of the GNU Lesser General Public License shall
637+apply, that proxy's public statement of acceptance of any version is
638+permanent authorization for you to choose that version for the
639+Library.
640+

Subscribers

People subscribed via source and target branches