[Mailman-Developers] From the creation of a ThreadID

Pierre-Yves Chibon pingou at pingoured.fr
Thu Apr 5 15:41:28 CEST 2012


Hi,

In HyperKitty to be able to easily retrieve from the database all the
threads of a given month or just all the emails of a thread, I created a
Field in the database called ThreadID.
When I load the archives from mailman into mongo, I look for the absence
of the headers 'References' or 'In-Reply-To' to define an email that
starts a new thread.
Then all emails which have the header 'References' or 'In-Reply-To' will
look for the preceding email and extract the ThreadID from it.
This seems to work fine.

At the beginning I was using a simple integer as identifier but of
course if you changed the order in which the archives are loaded or just
if you miss like one month than the ThreadID is not consistent anymore.
So I changed to use the Message-ID of the first email of the Thread as
ThreadID.
Problem is of course, if the admin removes the first email of a thread
for x or y reasons, then when reloading the archives (for z or a
reasons), we will loose the ThreadID and actually, the integrity of the
Thread (each reply to the first email will be split into their own
thread).

Would anyone have an idea on how to generate a stable and delete/reload
proof ThreadID?
The other solution of course being that I regenerate the thread on the
fly based on the first email (which is still easy to find), but that
will be a lot of db querying.

Thinking about it, generating the thread on the fly would also give the
possibility to regenerate the thread view from anywhere (so you could
generate a thread view for only a sub-thread).

Do you have any suggestions/preferences ?

Thanks,
Pierre


More information about the Mailman-Developers mailing list