Gnus development mailing list
 help / color / mirror / Atom feed
* automatically splitting conversations
@ 2000-06-09 11:04 Arnd Kohrs
  2000-06-10 19:27 ` Kai Großjohann
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Kohrs @ 2000-06-09 11:04 UTC (permalink / raw)


Hi,

I usually keep all my mail (other than mailing lists and archives) in
one folder.

However, sometimes it occurs that I want to keep some activities in
dedicated groups.  Examples are:

- discussions with a small group of friends on a particular subject (not
  the header!)
- mail exchanged for various job-related or personal projects.
- mail exchanged for online auction transactions

AFAIK, splitting these activities to other groups than my regular
mailbox, cannot be achieved automatically. 

Actually, I would want to declare something which corresponds
semantically to the following:

¨Split all the INCOMING mail, which refers to a given PARENT mail or group of
mails, in s DEDICATED folder.¨

In order to implement this there are some possibilities that I can
think of:

[Dirty Hack]
- when sending a mail from a DEDICATED folder, this folder name is
  encoded in the message-id of the outgoing mail.  All the responses
  will carry the information in the references header, and a splitting
  rule can be specified which identifies references with encoded folder
  names and splits it accordingly.

[Complex Hack]
- the previous scheme fails in the case when a thread was initiated by
  someone else, then manual interaction is necessary.  A better method
  would be, that splitting would check for incoming messages if they are
  descendents of any of the messages contained in the dedicated folder.
  This would of course be computational complex, but sometimes very
  convenient for the user:
  - the user identifies a discussion thread
  - he creates a dedicated group
  - and customizes it thus it received all descendents of contained
    mails via group-split.

Before I try to implement such functionality I just wanted to poll on this
list, if others think that it would be useful. Or even better, maybe it
is possible to achieve such a behavior with the existing means.  On the
other hand, how could this be best implemented?  

Cheers,
Arnd.
-- 
Arnd Kohrs  -  Institut Eurecom - http://www.eurecom.fr/~kohrs
              
The Active WebMuseum: Your personalized access to art paintings.
 Visit now ->  http://www.eurecom.fr/~kohrs/museum.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: automatically splitting conversations
  2000-06-09 11:04 automatically splitting conversations Arnd Kohrs
@ 2000-06-10 19:27 ` Kai Großjohann
  2000-06-11 20:22   ` Arnd Kohrs
  0 siblings, 1 reply; 4+ messages in thread
From: Kai Großjohann @ 2000-06-10 19:27 UTC (permalink / raw)
  Cc: ding

I have devised a patch for Gnus which does the following: whenever a
message is written to a group, Gnus memorizes the message id and the
group name.  There is a function which looks at the References header
of an incoming message and searches the memorized message ids for a
group name.  If a group name is found, it is returned.  If non is
found, nil is returned.

This does what you want, I think: you just `B m' the message into a
group, and all followups (and followups to the followups) go into that
group by default.

For the patch to work, you have to set nnmail-treat-duplicates to a
non-nil value.  And then you have to use the function
nnmail-split-fancy-with-parent in your split method.  I use
nnmail-split-fancy, as follows:

(setq nnmail-treat-duplicates 'delete) ;you might prefer `warn'
(setq nnmail-split-methods 'nnmail-split-fancy)
(setq nnmail-split-fancy '(| (: nnmail-split-fancy-with-parent)
                             ...other splits go here...))

I think the patch was integrated into Gnus on 2000-04-21, so it should
be in Gnus 5.8.6.

Hm.  I wonder if this is documented.  Hm.  No, apparently not.  This
is bad.  Please tell me how it goes when you try this.  I might need
your experience for writing the documentation.  Thanks!

kai
-- 
I like BOTH kinds of music.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: automatically splitting conversations
  2000-06-10 19:27 ` Kai Großjohann
@ 2000-06-11 20:22   ` Arnd Kohrs
  2000-06-12 12:30     ` Arnd Kohrs
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Kohrs @ 2000-06-11 20:22 UTC (permalink / raw)


>>>>> "Kai" == Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> writes:

    Kai> I have devised a patch for Gnus which does the following:
    Kai> whenever a message is written to a group, Gnus memorizes the
    Kai> message id and the group name.  There is a function which looks
    Kai> at the References header of an incoming message and searches
    Kai> the memorized message ids for a group name.  If a group name is
    Kai> found, it is returned.  If non is found, nil is returned.

Excellent, Kai.  And your code reveals that it wasn't as complicated to
code as I thought - by using the id cache heuristic.  However, using
nnmail-cache as a store for where messages are moved or split might
prevent a response to this message - in ten years from now - from not
being split correctly ;-).


    Kai> This does what you want, I think: you just `B m' the message

B m, did not do what was intended, see below.

    Kai> into a group, and all followups (and followups to the
    Kai> followups) go into that group by default.

    Kai> For the patch to work, you have to set nnmail-treat-duplicates
    Kai> to a non-nil value.  And then you have to use the function
    Kai> nnmail-split-fancy-with-parent in your split method.  I use
    Kai> nnmail-split-fancy, as follows:

    Kai> (setq nnmail-treat-duplicates 'delete) ;you might prefer `warn'
    Kai> (setq nnmail-split-methods 'nnmail-split-fancy) (setq
    Kai> nnmail-split-fancy '(| (: nnmail-split-fancy-with-parent)
    Kai> ...other splits go here...))


Besides setting these variable you absolutely need also

(setq nnmail-cache-accepted-message-ids t)

So that moving messages results in an update of the id cache.

Since I use gnus-group-split it is 

(setq nnmail-split-methods 'gnus-group-split)

for me, and then for my default mail group I have the following group
parameter:

(split-spec |
             (: nnmail-split-fancy-with-parent)
             catch-all)

    Kai> I wonder if this is documented.  Hm.  No, apparently not.  This
    Kai> is bad.  Please tell me how it goes when you try this.  I might
    Kai> need your experience for writing the documentation.

This is great functionality - It should definitely be documented.  It
could be labeled as something like /implicit splitting/, since the
user's action ("B m") is observed, and Gnus derives an implicit
splitting rule.


Arnd.
-- 
Arnd Kohrs  -  Institut Eurecom - http://www.eurecom.fr/~kohrs




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: automatically splitting conversations
  2000-06-11 20:22   ` Arnd Kohrs
@ 2000-06-12 12:30     ` Arnd Kohrs
  0 siblings, 0 replies; 4+ messages in thread
From: Arnd Kohrs @ 2000-06-12 12:30 UTC (permalink / raw)


>>>>> "Arnd" == Arnd Kohrs <kohrs@acm.org> writes:

    Arnd> Since I use gnus-group-split it is

    Arnd> (setq nnmail-split-methods 'gnus-group-split)

    Arnd> for me, and then for my default mail group I have the
    Arnd> following group parameter:

    Arnd> (split-spec | (: nnmail-split-fancy-with-parent) catch-all)

Oops, the above does NOT work as I thought it would.  I changed it thus my
default group gets the catch-all and another dummy group (bogus) is
configured with

((split-spec : nnmail-split-fancy-with-parent))

However, still pretty un-testet, but it seem to work. 

Arnd.
-- 
Arnd Kohrs  -  Institut Eurecom - http://www.eurecom.fr/~kohrs




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-06-12 12:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-06-09 11:04 automatically splitting conversations Arnd Kohrs
2000-06-10 19:27 ` Kai Großjohann
2000-06-11 20:22   ` Arnd Kohrs
2000-06-12 12:30     ` Arnd Kohrs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).