On Sat, Mar 15, 2003 at 01:28:52AM +0000, Adam Spiers said:
> Praying someone (e.g. siesta guys) will cite a counter-example,

When I was playing round with jwz's threading algorithm a while back my
soul point was to create such a tool. My plan was


1. Directory full of individual mail files (i.e maildir)
2. An index.cgi that scans these mails and presents them as threads with
   careful pagination.
3. A mail.cgi that, given the name of a mailfile, displays it.


The advantages of this are 

a) simple
b) easy to provide a tar ball fo all mails. Or convert to mbox format.
c) Want to change you archiving period from a month to a week - dead
   easy.
d) Makes searching easy
e) simple


Why did I never finish it?

- real life got in the way
- my pure Perl threading implementation was slow
- Mail::Thread by Simon Cozens failed tests on anything less than 5.6.1
  which I don't have and dislike as a prequisite [0]. This was
  apparently a Mail::Box issue. I didn't have time to patch.
- Mail::Box::Thread was slow and for the life of me I couldn't write a
  T:T page that would display the mails in a threaded way even with
  RECURSION=>1 in the vars and trying to use views instead of INCLUDING
  templates.



I think the best bet is Mail::Thread (and possibly a drop in replacement
Mail::Thread::XS for speed purposes) and something like 

        use Mail::Thread;
        my $threader = new Mail::Thread (@messages);

        eval {
                use Mail::Thread::XS;   
        };
        unless ($@) {
                $threader = new Mail::Thread::XS(@messages);

        }

because M:T has a nice interface that tells you the depth that you're
currently recursing at. 

Then a combination of T:T[1], Template::Plugin::Page and bob's your
mother's brother.

If anybody wants to write it then I'd happily feed them beer all night
long.

Simon


[0] I didn't upgrade to 5.6.x for various reasons and probably won't and
jumping from 5.00.x to 5.8 is quite a big jump. Basically, unless
there's a *really* shiny feature that 5.6 or 5.8 have which is
absolutely necessary for my module then it pisses me off when I can't
install it because somebody's put a require 5.6.0 in it.

        use warnings;

is the biggest culprit for that. Remove it and the module runs on stock
5.00.x but it's there and causing CPAN.pm to attempt to download a 'kin
huge tar ball from JHI's directory


[1] What wuld be nice would be to have different views for different
parts of the mail. Such as header (maybe even individual To and From and
Subject), body, quotes and sig.






-- 
it's a short link to a dead king


Reply via email to