[Zeitgeist] [Bug 930023] [NEW] Activity logger logging stopped button not working

2012-02-10 Thread Mark S
Public bug reported:

I don't want Zeitgeist recording anything at all so I clicked the button
in the bottom-right hand corner and now it says logging stopped. It's
been like this for a while now, so I was surprised when I checked this
morning and clicked on the Forget my activities... Delete button and the
dialog reported that it deleted 2 events. How can it have recorded two
new events if it's supposed to have stopped logging?

** Affects: zeitgeist
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/930023

Title:
  Activity logger logging stopped button not working

Status in Zeitgeist Framework:
  New

Bug description:
  I don't want Zeitgeist recording anything at all so I clicked the
  button in the bottom-right hand corner and now it says logging
  stopped. It's been like this for a while now, so I was surprised when
  I checked this morning and clicked on the Forget my activities...
  Delete button and the dialog reported that it deleted 2 events. How
  can it have recorded two new events if it's supposed to have stopped
  logging?

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/930023/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Bug 930023] [NEW] Activity logger logging stopped button not working

2012-02-10 Thread Seif Lotfy
Depends How much activities you wanted to forget? Last hour? or All time

On Fri, Feb 10, 2012 at 9:34 AM, Mark S
zargthesplen...@googlemail.comwrote:

 Public bug reported:

 I don't want Zeitgeist recording anything at all so I clicked the button
 in the bottom-right hand corner and now it says logging stopped. It's
 been like this for a while now, so I was surprised when I checked this
 morning and clicked on the Forget my activities... Delete button and the
 dialog reported that it deleted 2 events. How can it have recorded two
 new events if it's supposed to have stopped logging?

 ** Affects: zeitgeist
 Importance: Undecided
 Status: New

 --
 You received this bug notification because you are subscribed to The
 Zeitgeist Project.
 https://bugs.launchpad.net/bugs/930023

 Title:
  Activity logger logging stopped button not working

 Status in Zeitgeist Framework:
  New

 Bug description:
  I don't want Zeitgeist recording anything at all so I clicked the
  button in the bottom-right hand corner and now it says logging
  stopped. It's been like this for a while now, so I was surprised when
  I checked this morning and clicked on the Forget my activities...
  Delete button and the dialog reported that it deleted 2 events. How
  can it have recorded two new events if it's supposed to have stopped
  logging?

 To manage notifications about this bug go to:
 https://bugs.launchpad.net/zeitgeist/+bug/930023/+subscriptions


-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/930023

Title:
  Activity logger logging stopped button not working

Status in Zeitgeist Framework:
  New

Bug description:
  I don't want Zeitgeist recording anything at all so I clicked the
  button in the bottom-right hand corner and now it says logging
  stopped. It's been like this for a while now, so I was surprised when
  I checked this morning and clicked on the Forget my activities...
  Delete button and the dialog reported that it deleted 2 events. How
  can it have recorded two new events if it's supposed to have stopped
  logging?

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/930023/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 903791] Re: crawler timerange comparison wrong

2012-02-10 Thread मनीष सिन्हा
Crawler might be added sometime later. Right now no plan for adding it

-- 
You received this bug notification because you are a member of Activity
Log Manager, which is the registrant for Activity Log Manager.
https://bugs.launchpad.net/bugs/903791

Title:
  crawler timerange comparison wrong

Status in Activity Log Manager for Zeitgeist:
  Invalid

Bug description:
  As per https://bugs.launchpad.net/bugs/646724

  The crawler.py code in a-l-m has a bug (lines 126-128) comparing a timestamp 
in the form
  of a string with another in the form of a float/interger. Thats why it always
  inserts 0 events (timestamp test always fails).

  It also has a potential divide by zero bug if there are zero
  'valid_uris' at line 86.

To manage notifications about this bug go to:
https://bugs.launchpad.net/activity-log-manager/+bug/903791/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 930093] [NEW] blacklist application launches too

2012-02-10 Thread Seif Lotfy
Public bug reported:

the user probably wants to disable logging of launches of an app as well, when 
adding an app blacklist.
Currently we just blacklist events with the actor set to the app, but we also 
need it with actor as a subject

** Affects: activity-log-manager
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Activity
Log Manager, which is the registrant for Activity Log Manager.
https://bugs.launchpad.net/bugs/930093

Title:
  blacklist application launches too

Status in Activity Log Manager for Zeitgeist:
  New

Bug description:
  the user probably wants to disable logging of launches of an app as well, 
when adding an app blacklist.
  Currently we just blacklist events with the actor set to the app, but we also 
need it with actor as a subject

To manage notifications about this bug go to:
https://bugs.launchpad.net/activity-log-manager/+bug/930093/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 930091] [NEW] offer deletion of existing events for newly-added blacklists

2012-02-10 Thread Seif Lotfy
Public bug reported:

mhr3 seiflotfy, btw when someone adds a blacklist do you offer him to
delete events that already match the newly-added blacklist

** Affects: activity-log-manager
 Importance: Undecided
 Status: New

** Visibility changed to: Public

** This bug is no longer flagged as a security vulnerability

-- 
You received this bug notification because you are a member of Activity
Log Manager, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/930091

Title:
  offer deletion of existing events for newly-added blacklists

Status in Activity Log Manager for Zeitgeist:
  New

Bug description:
  mhr3 seiflotfy, btw when someone adds a blacklist do you offer him
  to delete events that already match the newly-added blacklist

To manage notifications about this bug go to:
https://bugs.launchpad.net/activity-log-manager/+bug/930091/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~zeitgeist/zeitgeist/fts++ into lp:zeitgeist

2012-02-10 Thread Siegfried Gevatter
Review: Approve

OK, merging it, but there's some outstanding stuff:

 * Important: the TableLookup in FTS can currently explode. The new schema 
version needs to add AUTOINCREMENT to the `id' row of all tables in 
TableLookup. We should do this before releasing a new tarball.

 * TableLookup.get_value: please prepare the query in the constructor.

 * Configure isn't checking for xapian being there

 * Add a flag to disable FTS? (keeping the Xapian dependency avoidable)
-- 
https://code.launchpad.net/~zeitgeist/zeitgeist/fts++/+merge/92022
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Merge] lp:~zeitgeist/zeitgeist/fts++ into lp:zeitgeist

2012-02-10 Thread noreply
The proposal to merge lp:~zeitgeist/zeitgeist/fts++ into lp:zeitgeist has been 
updated.

Status: Needs review = Merged

For more details, see:
https://code.launchpad.net/~zeitgeist/zeitgeist/fts++/+merge/92022
-- 
https://code.launchpad.net/~zeitgeist/zeitgeist/fts++/+merge/92022
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~zeitgeist/zeitgeist/fts++ into lp:zeitgeist

2012-02-10 Thread Seif Lotfy
I like the last one :)

On Fri, Feb 10, 2012 at 12:30 PM, Siegfried Gevatter rai...@ubuntu.comwrote:

 Review: Approve

 OK, merging it, but there's some outstanding stuff:

  * Important: the TableLookup in FTS can currently explode. The new schema
 version needs to add AUTOINCREMENT to the `id' row of all tables in
 TableLookup. We should do this before releasing a new tarball.

  * TableLookup.get_value: please prepare the query in the constructor.

  * Configure isn't checking for xapian being there

  * Add a flag to disable FTS? (keeping the Xapian dependency avoidable)
 --
 https://code.launchpad.net/~zeitgeist/zeitgeist/fts++/+merge/92022
 You are subscribed to branch lp:zeitgeist.


-- 
https://code.launchpad.net/~zeitgeist/zeitgeist/fts++/+merge/92022
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 930104] [NEW] Release checklist

2012-02-10 Thread Michal Hruby
Public bug reported:

There are some outstanding issues we need to tackle before releasing
stable 0.9.0:

 * Important: the TableLookup in FTS can currently explode. The new
schema version needs to add AUTOINCREMENT to the `id' row of all tables
in TableLookup. We should do this before releasing a new tarball.

 * TableLookup.get_value: please prepare the query in the constructor.

 * Configure isn't checking for xapian being there

 * Add a flag to disable FTS? (keeping the Xapian dependency avoidable)

** Affects: zeitgeist
 Importance: High
 Status: Triaged

** Changed in: zeitgeist
   Status: New = Triaged

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/930104

Title:
  Release checklist

Status in Zeitgeist Framework:
  Triaged

Bug description:
  There are some outstanding issues we need to tackle before releasing
  stable 0.9.0:

   * Important: the TableLookup in FTS can currently explode. The new
  schema version needs to add AUTOINCREMENT to the `id' row of all
  tables in TableLookup. We should do this before releasing a new
  tarball.

   * TableLookup.get_value: please prepare the query in the constructor.

   * Configure isn't checking for xapian being there

   * Add a flag to disable FTS? (keeping the Xapian dependency
  avoidable)

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/930104/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~mhr3/zeitgeist/fts-extras into lp:zeitgeist

2012-02-10 Thread Siegfried Gevatter
Review: Approve

Awesome.
-- 
https://code.launchpad.net/~mhr3/zeitgeist/fts-extras/+merge/92430
Your team Zeitgeist Framework Team is subscribed to branch 
lp:~zeitgeist/zeitgeist/fts++.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 391: Merged lp:~mhr3/zeitgeist/fts-extras

2012-02-10 Thread noreply
Merge authors:
  Michal Hruby (mhr3)
Related merge proposals:
  https://code.launchpad.net/~mhr3/zeitgeist/fts-extras/+merge/92430
  proposed by: Michal Hruby (mhr3)
  review: Approve - Siegfried Gevatter (rainct)

revno: 391 [merge]
committer: Michal Hruby michal@gmail.com
branch nick: zeitgeist
timestamp: Fri 2012-02-10 13:30:21 +0100
message:
  Merged lp:~mhr3/zeitgeist/fts-extras
modified:
  configure.ac
  extensions/fts++/Makefile.am
  extensions/fts++/fts.cpp
  extensions/fts++/fts.h
  extensions/fts++/fts.vapi
  extensions/fts++/indexer.cpp
  extensions/fts++/indexer.h
  extensions/fts++/stringutils.cpp
  extensions/fts++/stringutils.h
  extensions/fts++/test/Makefile.am
  extensions/fts++/test/test-indexer.cpp
  extensions/fts++/test/test-stringutils.cpp
  extensions/fts++/zeitgeist-fts.vala
  extensions/fts.vala
  src/remote.vala


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'configure.ac'
--- configure.ac	2012-02-08 18:54:58 +
+++ configure.ac	2012-02-09 15:32:36 +
@@ -40,6 +40,30 @@
 AC_SUBST(ZEITGEIST_LIBS)
 
 #
+# Dee-ICU check
+#
+DEE_ICU_REQUIRED=1.0.2
+
+AC_ARG_WITH([dee-icu],
+	AS_HELP_STRING([--with-dee-icu[=@:@no/auto/yes@:@]],
+		[Build the FTS extension with dee-icu]),
+	[with_dee_icu=$withval],
+	[with_dee_icu=auto])
+
+if test x$with_dee_icu = xauto ; then
+	PKG_CHECK_EXISTS([dee-icu-1.0 = $DEE_ICU_REQUIRED],
+		with_dee_icu=yes,
+		with_dee_icu=no)
+fi
+
+if test x$with_dee_icu = xyes ; then
+	PKG_CHECK_MODULES(DEE_ICU, dee-icu-1.0 = $DEE_ICU_REQUIRED)
+	AC_DEFINE(HAVE_DEE_ICU, 1, [Have dee-icu])
+fi
+
+AM_CONDITIONAL(HAVE_DEE_ICU, test x$with_dee_icu = xyes)
+
+#
 # DBus service
 #
 
@@ -88,3 +112,16 @@
 fi
 
 AC_OUTPUT
+
+cat EOF
+
+${PACKAGE}-${VERSION}
+
+  Build Environment
+Install Prefix: ${prefix}
+
+  Optional dependencies
+dee-icu:${with_dee_icu}
+
+EOF
+

=== modified file 'extensions/fts++/Makefile.am'
--- extensions/fts++/Makefile.am	2012-02-08 18:54:58 +
+++ extensions/fts++/Makefile.am	2012-02-09 15:32:36 +
@@ -76,6 +76,11 @@
 	-lxapian \
 	$(NULL)
 
+if HAVE_DEE_ICU
+AM_CPPFLAGS += $(DEE_ICU_CFLAGS)
+zeitgeist_fts_LDADD += $(DEE_ICU_LIBS)
+endif
+
 BUILT_SOURCES = \
 	zeitgeist-internal.stamp \
 	zeitgeist-fts_vala.stamp \

=== modified file 'extensions/fts++/fts.cpp'
--- extensions/fts++/fts.cpp	2012-02-09 09:32:33 +
+++ extensions/fts++/fts.cpp	2012-02-09 18:34:36 +
@@ -84,6 +84,36 @@
   return results;
 }
 
+GPtrArray*
+zeitgeist_indexer_search_with_relevancies (ZeitgeistIndexer *indexer,
+   const gchar *search_string,
+   ZeitgeistTimeRange *time_range,
+   GPtrArray *templates,
+   guint offset,
+   guint count,
+   ZeitgeistResultType result_type,
+   gdouble **relevancies,
+   gint *relevancies_size,
+   guint *matches,
+   GError **error)
+{
+  GPtrArray *results;
+  ZeitgeistFTS::Controller *_indexer;
+
+  g_return_val_if_fail (indexer != NULL, NULL);
+  g_return_val_if_fail (search_string != NULL, NULL);
+  g_return_val_if_fail (ZEITGEIST_IS_TIME_RANGE (time_range), NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+  _indexer = (ZeitgeistFTS::Controller*) indexer;
+
+  results = _indexer-indexer-SearchWithRelevancies (
+  search_string, time_range, templates, offset, count, result_type,
+  relevancies, relevancies_size, matches, error);
+
+  return results;
+}
+
 void zeitgeist_indexer_index_events (ZeitgeistIndexer *indexer,
  GPtrArray *events)
 {

=== modified file 'extensions/fts++/fts.h'
--- extensions/fts++/fts.h	2012-02-09 09:32:33 +
+++ extensions/fts++/fts.h	2012-02-09 18:34:36 +
@@ -43,6 +43,19 @@
 guint *matches,
 GError **error);
 
+GPtrArray* zeitgeist_indexer_search_with_relevancies
+   (ZeitgeistIndexer *indexer,
+const gchar *search_string,
+ZeitgeistTimeRange *time_range,
+  

[Zeitgeist] [Merge] lp:~mhr3/zeitgeist/fts-extras into lp:zeitgeist

2012-02-10 Thread noreply
The proposal to merge lp:~mhr3/zeitgeist/fts-extras into lp:zeitgeist has been 
updated.

Status: Work in progress = Merged

For more details, see:
https://code.launchpad.net/~mhr3/zeitgeist/fts-extras/+merge/92430
-- 
https://code.launchpad.net/~mhr3/zeitgeist/fts-extras/+merge/92430
Your team Zeitgeist Framework Team is subscribed to branch 
lp:~zeitgeist/zeitgeist/fts++.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 930023] Re: Activity logger logging stopped button not working

2012-02-10 Thread Siegfried Gevatter
** Project changed: zeitgeist = activity-log-manager

-- 
You received this bug notification because you are a member of Activity
Log Manager, which is the registrant for Activity Log Manager.
https://bugs.launchpad.net/bugs/930023

Title:
  Activity logger logging stopped button not working

Status in Activity Log Manager for Zeitgeist:
  New

Bug description:
  I don't want Zeitgeist recording anything at all so I clicked the
  button in the bottom-right hand corner and now it says logging
  stopped. It's been like this for a while now, so I was surprised when
  I checked this morning and clicked on the Forget my activities...
  Delete button and the dialog reported that it deleted 2 events. How
  can it have recorded two new events if it's supposed to have stopped
  logging?

To manage notifications about this bug go to:
https://bugs.launchpad.net/activity-log-manager/+bug/930023/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 392: Use the old fts directory and increase index version

2012-02-10 Thread noreply

revno: 392
committer: Michal Hruby michal@gmail.com
branch nick: bluebird
timestamp: Fri 2012-02-10 13:48:52 +0100
message:
  Use the old fts directory and increase index version
modified:
  extensions/fts++/indexer.cpp
  extensions/fts++/indexer.h


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/indexer.cpp'
--- extensions/fts++/indexer.cpp	2012-02-10 11:54:32 +
+++ extensions/fts++/indexer.cpp	2012-02-10 12:48:52 +
@@ -50,7 +50,7 @@
   Xapian::QueryParser::FLAG_PURE_NOT | Xapian::QueryParser::FLAG_LOVEHATE | \
   Xapian::QueryParser::FLAG_WILDCARD
 
-const std::string FTS_MAIN_DIR = ftspp.index;
+const std::string FTS_MAIN_DIR = fts.index;
 
 void Indexer::Initialize (GError **error)
 {
@@ -363,8 +363,9 @@
   std::string result (StringUtils::RemoveUnderscores (input));
   // a simple heuristic for the uncamelcaser
   size_t num_digits = StringUtils::CountDigits (result);
-  if (result.length ()  3  num_digits  result.length () / 2)
+  if (result.length ()  5  num_digits  result.length () / 2)
   {
+// FIXME: handle non-digit ids somehow as well (like rNsGg / yJuSB)
 // FIXME: process digits?, atm they stay attached to the text
 result = StringUtils::UnCamelcase (result);
   }

=== modified file 'extensions/fts++/indexer.h'
--- extensions/fts++/indexer.h	2012-02-10 11:30:52 +
+++ extensions/fts++/indexer.h	2012-02-10 12:48:52 +
@@ -29,7 +29,7 @@
 
 namespace ZeitgeistFTS {
 
-const std::string INDEX_VERSION = 1;
+const std::string INDEX_VERSION = 2;
 
 class Indexer
 {

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 927938] Re: Monitoring Downloads directory should be disabled by default

2012-02-10 Thread Michal Hruby
I agree with Seif here, while we need the monitor for the time being,
the ultimate goal is apps (or other passive loggers) telling us what
happened. An inotify monitor like this is for me equal to regular
polling.

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is the registrant for Zeitgeist Datahub.
https://bugs.launchpad.net/bugs/927938

Title:
  Monitoring Downloads directory should be disabled by default

Status in Zeitgeist Datahub:
  New

Bug description:
  I think Zeitgeist should ship its source with monitoring downloads
  disabled by default. I think we should use --enable-downloads-monitor
  as an argument.

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist-datahub/+bug/927938/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Merge] lp:~rainct/zeitgeist/insert-event-fixes into lp:zeitgeist

2012-02-10 Thread Siegfried Gevatter
Siegfried Gevatter has proposed merging lp:~rainct/zeitgeist/insert-event-fixes 
into lp:zeitgeist.

Requested reviews:
  Zeitgeist Framework Team (zeitgeist)
Related bugs:
  Bug #928804 in Zeitgeist Framework: Blacklist doesn't handle empty 
current_uri
  https://bugs.launchpad.net/zeitgeist/+bug/928804

For more details, see:
https://code.launchpad.net/~rainct/zeitgeist/insert-event-fixes/+merge/92468

- Pre-process events before they are send to the extensions (LP: #628804).
- Fix Storage Monitor to take into account that events may be NULL.
- Fix error messages (related to MOVE_EVENT) that were interchanged.
-- 
https://code.launchpad.net/~rainct/zeitgeist/insert-event-fixes/+merge/92468
Your team Zeitgeist Framework Team is requested to review the proposed merge of 
lp:~rainct/zeitgeist/insert-event-fixes into lp:zeitgeist.
=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-02-10 12:07:27 +
+++ extensions/fts++/test/test-indexer.cpp	2012-02-10 13:40:28 +
@@ -169,13 +169,22 @@
 static guint
 index_event (Fixture *fix, ZeitgeistEvent *event)
 {
+  GPtrArray *events;
   guint event_id = 0;
+  guint *event_ids;
+  int num_events_inserted;
 
   // add event to DBs
-  event_id = zeitgeist_engine_insert_event (ZEITGEIST_ENGINE (fix-db),
-event, NULL, NULL);
+  events = g_ptr_array_new ();
+  g_ptr_array_add (events, event);
+  event_ids = zeitgeist_engine_insert_events (ZEITGEIST_ENGINE (fix-db),
+  events, NULL,
+  num_events_inserted, NULL);
+  g_assert_cmpint (1, ==, num_events_inserted);
+  event_id = *event_ids;
+  g_ptr_array_unref (events);
 
-  GPtrArray *events = g_ptr_array_new_with_free_func (g_object_unref);
+  events = g_ptr_array_new_with_free_func (g_object_unref);
   g_ptr_array_add (events, event); // steal event ref
   zeitgeist_indexer_index_events (fix-indexer, events);
   g_ptr_array_unref (events);

=== modified file 'extensions/storage-monitor.vala'
--- extensions/storage-monitor.vala	2012-02-02 18:57:35 +
+++ extensions/storage-monitor.vala	2012-02-10 13:40:28 +
@@ -269,10 +269,11 @@
 {
 for (int i = 0; i  events.length; ++i)
 {
+if (events[i] == null) continue;
 for (int j = 0; j  events[i].subjects.length; ++j)
 {
 Subject subject = events[i].subjects[j];
-if (subject.storage == )
+if (Utils.is_empty_string (subject.storage))
 subject.storage = find_storage_for_uri (subject.uri);
 }
 }

=== modified file 'src/engine.vala'
--- src/engine.vala	2012-02-07 17:02:05 +
+++ src/engine.vala	2012-02-10 13:40:28 +
@@ -27,6 +27,7 @@
 
 using Zeitgeist;
 using Zeitgeist.SQLite;
+using Zeitgeist.Utils;
 
 namespace Zeitgeist
 {
@@ -62,21 +63,74 @@
 public uint32[] insert_events (GenericArrayEvent events,
 BusName? sender=null) throws EngineError
 {
+// Any changes to events need to be done here so they'll
+// be taken into consideration by the extensions (LP: #928804).
+for (int i = 0; i  events.length; ++i)
+{
+preprocess_event (events[i]);
+}
+
 extension_collection.call_pre_insert_events (events, sender);
 uint32[] event_ids = new uint32[events.length];
 database.begin_transaction ();
 for (int i = 0; i  events.length; ++i)
 {
 if (events[i] != null)
-event_ids[i] = insert_event (events[i], sender);
+event_ids[i] = insert_event (events[i]);
 }
 database.end_transaction ();
 extension_collection.call_post_insert_events (events, sender);
 return event_ids;
 }
 
-public uint32 insert_event (Event event,
-BusName? sender=null) throws EngineError
+private void preprocess_event (Event event) throws EngineError
+{
+// Iterate through subjects and check for validity
+for (int i = 0; i  event.num_subjects(); ++i)
+{
+unowned Subject subject = event.subjects[i];
+
+// If current_uri is unset, give it the same value as URI
+if (is_empty_string (subject.current_uri))
+subject.current_uri = subject.uri;
+
+if (event.interpretation == ZG.MOVE_EVENT
+ subject.uri == subject.current_uri)
+{
+throw new EngineError.INVALID_ARGUMENT (
+Redundant event: event.interpretation indicates  +
+the uri has been moved yet the subject.uri and  +
+subject.current_uri are identical);
+}
+else if (event.interpretation != ZG.MOVE_EVENT
+ subject.uri != subject.current_uri)
+{
+

[Zeitgeist] [Bug 928804] Re: Blacklist doesn't handle empty current_uri

2012-02-10 Thread Launchpad Bug Tracker
** Branch linked: lp:~rainct/zeitgeist/insert-event-fixes

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/928804

Title:
  Blacklist doesn't handle empty current_uri

Status in Zeitgeist Framework:
  Confirmed

Bug description:
  The blacklist extension needs to take into account that an empty
  `current_uri' will get the value of `uri'. It currently isn't doing
  so.

  This can be reproduced with a new test case: blacklist-
  test.BlacklistTest.testApplyBlacklistForEventWithEmptyCurrentURI

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/928804/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~rainct/zeitgeist/insert-event-fixes into lp:zeitgeist

2012-02-10 Thread Michal Hruby
Review: Approve

Looks good to me.
-- 
https://code.launchpad.net/~rainct/zeitgeist/insert-event-fixes/+merge/92468
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 393: - Pre-process events before they are send to the extensions (LP: #628804).

2012-02-10 Thread noreply

revno: 393
fixes bug: https://launchpad.net/bugs/928804
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Fri 2012-02-10 14:35:02 +0100
message:
   - Pre-process events before they are send to the extensions (LP: #628804).
   - Fix Storage Monitor to take into account that events may be NULL.
   - Fix error messages (related to MOVE_EVENT) that were interchanged.
modified:
  extensions/fts++/test/test-indexer.cpp
  extensions/storage-monitor.vala
  src/engine.vala
  test/dbus/blacklist-test.py


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/test/test-indexer.cpp'
--- extensions/fts++/test/test-indexer.cpp	2012-02-10 12:07:27 +
+++ extensions/fts++/test/test-indexer.cpp	2012-02-10 13:35:02 +
@@ -169,13 +169,22 @@
 static guint
 index_event (Fixture *fix, ZeitgeistEvent *event)
 {
+  GPtrArray *events;
   guint event_id = 0;
+  guint *event_ids;
+  int num_events_inserted;
 
   // add event to DBs
-  event_id = zeitgeist_engine_insert_event (ZEITGEIST_ENGINE (fix-db),
-event, NULL, NULL);
+  events = g_ptr_array_new ();
+  g_ptr_array_add (events, event);
+  event_ids = zeitgeist_engine_insert_events (ZEITGEIST_ENGINE (fix-db),
+  events, NULL,
+  num_events_inserted, NULL);
+  g_assert_cmpint (1, ==, num_events_inserted);
+  event_id = *event_ids;
+  g_ptr_array_unref (events);
 
-  GPtrArray *events = g_ptr_array_new_with_free_func (g_object_unref);
+  events = g_ptr_array_new_with_free_func (g_object_unref);
   g_ptr_array_add (events, event); // steal event ref
   zeitgeist_indexer_index_events (fix-indexer, events);
   g_ptr_array_unref (events);

=== modified file 'extensions/storage-monitor.vala'
--- extensions/storage-monitor.vala	2012-02-02 18:57:35 +
+++ extensions/storage-monitor.vala	2012-02-10 13:35:02 +
@@ -269,10 +269,11 @@
 {
 for (int i = 0; i  events.length; ++i)
 {
+if (events[i] == null) continue;
 for (int j = 0; j  events[i].subjects.length; ++j)
 {
 Subject subject = events[i].subjects[j];
-if (subject.storage == )
+if (Utils.is_empty_string (subject.storage))
 subject.storage = find_storage_for_uri (subject.uri);
 }
 }

=== modified file 'src/engine.vala'
--- src/engine.vala	2012-02-07 17:02:05 +
+++ src/engine.vala	2012-02-10 13:35:02 +
@@ -27,6 +27,7 @@
 
 using Zeitgeist;
 using Zeitgeist.SQLite;
+using Zeitgeist.Utils;
 
 namespace Zeitgeist
 {
@@ -62,21 +63,74 @@
 public uint32[] insert_events (GenericArrayEvent events,
 BusName? sender=null) throws EngineError
 {
+// Any changes to events need to be done here so they'll
+// be taken into consideration by the extensions (LP: #928804).
+for (int i = 0; i  events.length; ++i)
+{
+preprocess_event (events[i]);
+}
+
 extension_collection.call_pre_insert_events (events, sender);
 uint32[] event_ids = new uint32[events.length];
 database.begin_transaction ();
 for (int i = 0; i  events.length; ++i)
 {
 if (events[i] != null)
-event_ids[i] = insert_event (events[i], sender);
+event_ids[i] = insert_event (events[i]);
 }
 database.end_transaction ();
 extension_collection.call_post_insert_events (events, sender);
 return event_ids;
 }
 
-public uint32 insert_event (Event event,
-BusName? sender=null) throws EngineError
+private void preprocess_event (Event event) throws EngineError
+{
+// Iterate through subjects and check for validity
+for (int i = 0; i  event.num_subjects(); ++i)
+{
+unowned Subject subject = event.subjects[i];
+
+// If current_uri is unset, give it the same value as URI
+if (is_empty_string (subject.current_uri))
+subject.current_uri = subject.uri;
+
+if (event.interpretation == ZG.MOVE_EVENT
+ subject.uri == subject.current_uri)
+{
+throw new EngineError.INVALID_ARGUMENT (
+Redundant event: event.interpretation indicates  +
+the uri has been moved yet the subject.uri and  +
+subject.current_uri are identical);
+}
+else if (event.interpretation != ZG.MOVE_EVENT
+ subject.uri != 

[Zeitgeist] [Merge] lp:~rainct/zeitgeist/insert-event-fixes into lp:zeitgeist

2012-02-10 Thread noreply
The proposal to merge lp:~rainct/zeitgeist/insert-event-fixes into lp:zeitgeist 
has been updated.

Status: Needs review = Merged

For more details, see:
https://code.launchpad.net/~rainct/zeitgeist/insert-event-fixes/+merge/92468
-- 
https://code.launchpad.net/~rainct/zeitgeist/insert-event-fixes/+merge/92468
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 394: Update NEWS.

2012-02-10 Thread noreply

revno: 394
committer: Siegfried-Angel Gevatter Pujals siegfr...@gevatter.com
branch nick: bluebird
timestamp: Fri 2012-02-10 15:42:54 +0100
message:
  Update NEWS.
modified:
  NEWS


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'NEWS'
--- NEWS	2012-01-27 14:33:29 +
+++ NEWS	2012-02-10 14:42:54 +
@@ -1,3 +1,16 @@
+2012-02-10: Zeitgeist Bluebird Beta 1
+
+Engine:
+ - Revert use of EXCLUSIVE locking mode, it breaks FTS.
+ - Notifications are queued until the target monitor objects are ready.
+ - The FTS module in Python has been replaced with a C/C++ implementation.
+ - Pre-process events *before* they are send to extensions (LP: #628804).
+ - Minor fixes.
+
+Python API:
+ - Fixed signal/monitor reconnection to avoid duplicated notifications.
+ - Updated the list of recognized MIME-types and schemas.
+
 2012-01-27: Zeitgeist Bluebird Alpha 2
 --
 

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 799531] Re: API for deletion of events within a timerange?

2012-02-10 Thread Seif Lotfy
Siegfried I like the idea of deleting events within a timeframe
maybe a the same arguments like find_events but that actually deletes the found 
events

-- 
You received this bug notification because you are a member of Activity
Log Manager, which is the registrant for Activity Log Manager.
https://bugs.launchpad.net/bugs/799531

Title:
  API for deletion of events within a timerange?

Status in Activity Log Manager for Zeitgeist:
  Invalid
Status in Zeitgeist Framework:
  New

Bug description:
  If I try to select date range more then a month it just freezes.

  $ activity-log-manager 
  INFO:zeitgeist.client:Reconnected to Zeitgeist engine...
  Error from Zeitgeist engine: 
org.freedesktop.DBus.Python.sqlite3.OperationalError: Traceback (most recent 
call last):
File /usr/lib/pymodules/python2.7/dbus/service.py, line 702, in 
_message_cb
  retval = candidate_method(self, *args, **keywords)
File /usr/share/zeitgeist/_zeitgeist/engine/remote.py, line 337, in 
DeleteEvents
  timestamps = self._engine.delete_events(event_ids, sender=sender)
File /usr/share/zeitgeist/_zeitgeist/engine/main.py, line 838, in 
delete_events
  % ,.join([?] * len(ids)), ids)
File /usr/share/zeitgeist/_zeitgeist/engine/sql.py, line 74, in execute
  return super(UnicodeCursor, self).execute(statement, parameters)
  OperationalError: too many SQL variables

  Version: 0.8.0-0ubuntu1~ppa2~natty

To manage notifications about this bug go to:
https://bugs.launchpad.net/activity-log-manager/+bug/799531/+subscriptions

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Merge] lp:~rainct/zeitgeist/schema6 into lp:zeitgeist

2012-02-10 Thread Siegfried Gevatter
Siegfried Gevatter has proposed merging lp:~rainct/zeitgeist/schema6 into 
lp:zeitgeist.

Requested reviews:
  Zeitgeist Framework Team (zeitgeist)

For more details, see:
https://code.launchpad.net/~rainct/zeitgeist/schema6/+merge/92519
-- 
https://code.launchpad.net/~rainct/zeitgeist/schema6/+merge/92519
Your team Zeitgeist Framework Team is requested to review the proposed merge of 
lp:~rainct/zeitgeist/schema6 into lp:zeitgeist.
=== modified file 'NEWS'
--- NEWS	2012-02-10 14:42:54 +
+++ NEWS	2012-02-10 17:02:09 +
@@ -6,6 +6,8 @@
  - The FTS module in Python has been replaced with a C/C++ implementation.
  - Pre-process events *before* they are send to extensions (LP: #628804).
  - Minor fixes.
+ - Introduced new DB schema (version 6); cached tables may no longer
+   re-use row IDs.
 
 Python API:
  - Fixed signal/monitor reconnection to avoid duplicated notifications.
@@ -42,9 +44,10 @@
 
 Engine:
 
- - The language for extensions has changes from Python to Vala.
+ - Changed the language for extensions from Python to Vala.
  - The post_get_events hook is no longer supported.
  - The FTS and Histogram extensions are now shipped together with Zeitgeist.
+ - Introduced new DB schema (version 5).
 
 -
 -

=== modified file 'src/sql-schema.vala'
--- src/sql-schema.vala	2012-02-06 16:11:53 +
+++ src/sql-schema.vala	2012-02-10 17:02:09 +
@@ -35,7 +35,7 @@
 {
 
 public const string CORE_SCHEMA = core;
-public const int CORE_SCHEMA_VERSION = 5;
+public const int CORE_SCHEMA_VERSION = 6;
 
 public static void ensure_schema (Sqlite.Database database)
 throws EngineError
@@ -48,19 +48,55 @@
 // most likely a new DB
 create_schema (database);
 }
-else if (schema_version == 4)
+else if (schema_version == 4 || schema_version == 5)
 {
-// DB from latest Python Zeitgeist, which we can upgrade
-try
-{
-  Utils.backup_database ();
-}
-catch (Error backup_error)
-{
-var msg = Database backup failed:  + backup_error.message;
-throw new EngineError.BACKUP_FAILED (msg);
-}
+backup_database ();
+
+string[] tables = { interpretation, manifestation,
+mimetype, actor };
+
+// Rename old tables that need to be replaced
+foreach (unowned string table in tables)
+{
+exec_query (database,
+ALTER TABLE %s RENAME TO %s_old.printf (table, table));
+}
+
+// Create any missing tables and indices
 create_schema (database);
+
+// Migrate data to the new tables and delete the old ones
+foreach (unowned string table in tables)
+{
+exec_query (database,
+INSERT INTO %s SELECT id, value FROM %s_old.printf (
+table, table));
+
+exec_query (database, DROP TABLE %s_old.printf (table));
+}
+
+// Ontology update
+exec_query (database,
+INSERT OR IGNORE INTO manifestation (value) VALUES ('%s')
+.printf (NFO.WEB_DATA_OBJECT));
+exec_query (database, 
+UPDATE event
+SET subj_manifestation=(
+SELECT id FROM manifestation WHERE value=' +
+NFO.WEB_DATA_OBJECT + ')
+WHERE
+subj_manifestation=(
+SELECT id FROM manifestation WHERE value=' +
+NFO.WEB_DATA_OBJECT + ')
+AND subj_id IN (
+SELECT id FROM uri
+WHERE
+value LIKE http://%;
+OR value LIKE https://%;
+)
+);
+
+message (Upgraded database to schema version 6.);
 }
 else if (schema_version  CORE_SCHEMA_VERSION)
 {
@@ -70,6 +106,19 @@
 }
 }
 
+private static void backup_database () throws EngineError
+{
+try
+{
+  Utils.backup_database ();
+}
+catch (Error backup_error)
+{
+var msg = Database backup failed:  + backup_error.message;
+throw new EngineError.BACKUP_FAILED (msg);
+}
+}
+
 public static int get_schema_version (Sqlite.Database database)
 

[Zeitgeist] [Branch ~zeitgeist/zeitgeist/bluebird] Rev 395: Add storage state parameter to the SearchWithRelevancies method

2012-02-10 Thread noreply

revno: 395
committer: Michal Hruby michal@gmail.com
branch nick: bluebird
timestamp: Fri 2012-02-10 18:03:50 +0100
message:
  Add storage state parameter to the SearchWithRelevancies method
modified:
  extensions/fts++/fts.cpp
  extensions/fts++/fts.h
  extensions/fts++/fts.vapi
  extensions/fts++/indexer.cpp
  extensions/fts++/indexer.h
  extensions/fts++/zeitgeist-fts.vala
  extensions/fts.vala
  src/remote.vala


--
lp:zeitgeist
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird

Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.
To unsubscribe from this branch go to 
https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'extensions/fts++/fts.cpp'
--- extensions/fts++/fts.cpp	2012-02-09 18:34:36 +
+++ extensions/fts++/fts.cpp	2012-02-10 17:03:50 +
@@ -89,6 +89,7 @@
const gchar *search_string,
ZeitgeistTimeRange *time_range,
GPtrArray *templates,
+   ZeitgeistStorageState storage_state,
guint offset,
guint count,
ZeitgeistResultType result_type,
@@ -108,8 +109,8 @@
   _indexer = (ZeitgeistFTS::Controller*) indexer;
 
   results = _indexer-indexer-SearchWithRelevancies (
-  search_string, time_range, templates, offset, count, result_type,
-  relevancies, relevancies_size, matches, error);
+  search_string, time_range, templates, storage_state, offset, count,
+  result_type, relevancies, relevancies_size, matches, error);
 
   return results;
 }

=== modified file 'extensions/fts++/fts.h'
--- extensions/fts++/fts.h	2012-02-09 18:34:36 +
+++ extensions/fts++/fts.h	2012-02-10 17:03:50 +
@@ -48,6 +48,7 @@
 const gchar *search_string,
 ZeitgeistTimeRange *time_range,
 GPtrArray *templates,
+ZeitgeistStorageState storage_state,
 guint offset,
 guint count,
 ZeitgeistResultType result_type,

=== modified file 'extensions/fts++/fts.vapi'
--- extensions/fts++/fts.vapi	2012-02-09 18:34:36 +
+++ extensions/fts++/fts.vapi	2012-02-10 17:03:50 +
@@ -18,6 +18,7 @@
 string search_string,
 TimeRange time_range,
 GLib.GenericArrayEvent templates,
+StorageState storage_state,
 uint offset,
 uint count,
 ResultType result_type,

=== modified file 'extensions/fts++/indexer.cpp'
--- extensions/fts++/indexer.cpp	2012-02-10 12:48:52 +
+++ extensions/fts++/indexer.cpp	2012-02-10 17:03:50 +
@@ -825,6 +825,7 @@
 GPtrArray* Indexer::SearchWithRelevancies (const gchar *search,
ZeitgeistTimeRange *time_range,
GPtrArray *templates,
+   ZeitgeistStorageState storage_state,
guint offset,
guint count,
ZeitgeistResultType result_type,
@@ -849,6 +850,15 @@
   enquire-set_sort_by_value (VALUE_TIMESTAMP, true);
 }
 
+if (storage_state != ZEITGEIST_STORAGE_STATE_ANY)
+{
+  g_set_error_literal (error,
+   ZEITGEIST_ENGINE_ERROR,
+   ZEITGEIST_ENGINE_ERROR_INVALID_ARGUMENT,
+   Only ANY stogate state is supported);
+  return NULL;
+}
+
 Xapian::Query q(query_parser-parse_query (query_string, QUERY_PARSER_FLAGS));
 enquire-set_query (q);
 Xapian::MSet hits (enquire-get_mset (offset, maxhits));

=== modified file 'extensions/fts++/indexer.h'
--- extensions/fts++/indexer.h	2012-02-10 12:48:52 +
+++ extensions/fts++/indexer.h	2012-02-10 17:03:50 +
@@ -88,6 +88,7 @@
   GPtrArray* SearchWithRelevancies (const gchar *search,
 ZeitgeistTimeRange *time_range,
 GPtrArray *templates,
+ZeitgeistStorageState storage_state,
 guint offset,
 guint count,
   

Re: [Zeitgeist] [Merge] lp:~rainct/zeitgeist/schema6 into lp:zeitgeist

2012-02-10 Thread Michal Hruby
Review: Needs Information

Although I generally like this, we are breaking existing clients - for example 
Synapse uses the RemoteDataObject interpretation to query for web stuff... Not 
sure how to handle this, ideas?
-- 
https://code.launchpad.net/~rainct/zeitgeist/schema6/+merge/92519
Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp