[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Conversation View
On Fri, Aug 20, 2010 at 12:07 PM, Erik Hetzner <ehetzner@gmail.com> wrote:
> At Fri, 20 Aug 2010 10:20:48 -0800,
> Dave Abrahams wrote:
>> On Aug 20, 2010, at 10:01 AM, Erik Hetzner <ehetzner@gmail.com> wrote:
>
>> > (Virtual folders also allow you to create virtual folders that
>> > simulate gmail conversation view. See the above wiki.)
>>
>> Yeah; tried it but it didn't work for me. In fact it was kind of
>> awful. See this thread for the full report:
>> http://www.mail-archive.com/dovecot@dovecot.org/msg24923.html
>>
>> My guess is that this feature hasnt had much testing
>
> I haven’t tested the conversation view much. But the all virtual
> mailbox is working pretty well for me.
Well, caveat emptor. I'm unwilling to any longer administer my own mail server
unless absolutely forced to, anyway.
>> I never tried switching the search backend, but with a large message
>> history searching was anything but fast.
>
> Solr is fast. WL spends more time building summaries than waiting for
> an IMAP response. Unfortunately it requires setting up a search
> server.
>
>> I think I may be on the trail of developing that feature. Could
>> really use some help tho
>
> Here is a start. It only works after you have displayed a message (I’m
> sure there is a fix for this). The real trouble is that we need to
> follow the trail of references up to the first message to really get
> the full thread, which entails a back-and-forth with the IMAP server.
Hmm, I didn't have that problem. If you check out my blog post noted at the
beginning of this thread, I thiknk this is enough:
* X = the first message-ID in the message's "References:" header
(refers to the beginning of the thread if we're not at the beginning
and all MUAs are well-behaved).
* Y = the message-ID of the current message
* Set up a filtered folder showing everything whose message ID is X or
Y or that has X or Y in its references field.
> (defun egh:wl-all-folder ()
> "%xxx:xxx@xxx.com:993!")
>
> (defun egh:wl-summary-visit-conversation ()
> (interactive)
> (let* ((f (lambda (str)
> (mapcar (lambda (msgid)
> (substring msgid 1 -1))
> (split-string str " "))))
> (msg (elmo-message-entity
> wl-summary-buffer-elmo-folder
> wl-summary-buffer-current-msg))
> (ids (append
> (funcall f (elmo-message-entity-field msg 'message-id))
> (funcall f (elmo-message-entity-field msg 'references)))))
> (wl-summary-goto-folder-subr
> (concat
> "/"
> (mapconcat
> (lambda (ref)
> (concat "message-id:" ref
> "|references:" ref))
> ids "|")
> "/"
> (egh:wl-all-folder))
> 'update nil nil t)))
Thanks; looks like I might be able to make this do some of what I want
(once I untwist your über-functional style and figure out what it
means) ;-)
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com