File: nndiary.el.html
Contents management by FCM version 0.1.
Description:
===========
nndiary is a mail back end designed to handle mails as diary event reminders. It is now fully documented in the Gnus manual.
Bugs / Todo:
===========
* Respooling doesn't work because contrary to the request-scan function,
Gnus won't allow me to override the split methods when calling the
respooling back end functions.
* There's a bug in the time zone mechanism with variable TZ locations.
* We could allow a keyword like ask in X-Diary-* headers, that would mean
"ask for value upon reception of the message".
* We could add an optional header X-Diary-Reminders to specify a special
reminders value for this message. Suggested by Jody Klymak.
* We should check messages validity in other circumstances than just
moving an article from somewhere else (request-accept). For instance,
when editing / saving and so on.
Remarks:
=======
* nnoo. NNDiary is very similar to nnml. This makes the idea of using nnoo
(to derive nndiary from nnml) natural. However, my experience with nnoo
is that for reasonably complex back ends like this one, nnoo is a burden
rather than an help. It's tricky to use, not everything can be inherited,
what can be inherited and when is not very clear, and you've got to be
very careful because a little mistake can fuck up your other back ends,
especially because their variables will be use instead of your real ones.
Finally, I found it easier to just clone the needed parts of nnml, and
tracking nnml updates is not a big deal.
IMHO, nnoo is actually badly designed. A much simpler, and yet more
powerful one would be to make *real* functions and variables for a new
back end based on another. Lisp is a reflexive language so that's a very
easy thing to do: inspect the function's form, replace occurrences of
<nnfrom> (even in strings) with <nnto>, and you're done.
* nndiary-get-new-mail, nndiary-mail-source and nndiary-split-methods:
NNDiary has some experimental parts, in the sense Gnus normally uses only
one mail back ends for mail retrieval and splitting. This back end is
also an attempt to make it behave differently. For Gnus developers: as
you can see if you snarf into the code, that was not a very difficult
thing to do. Something should be done about the respooling breakage
though.
Defined variables (16)
nndiary-active-file | Active file for the nndiary back end. |
nndiary-check-directory-twice | If t, check directories twice to avoid NFS failures. |
nndiary-directory | Spool directory for the nndiary back end. |
nndiary-get-new-mail | Whether nndiary gets new mail and split it. |
nndiary-inhibit-expiry | If non-nil, inhibit expiry. |
nndiary-mail-sources | NNDiary specific mail sources. |
nndiary-newsgroups-file | Newsgroups description file for the nndiary back end. |
nndiary-nov-is-evil | If non-nil, Gnus will never use nov databases for nndiary groups. |
nndiary-prepare-save-mail-hook | Hook run narrowed to an article before saving. |
nndiary-reminders | Different times when you want to be reminded of your appointments. |
nndiary-request-accept-article-functions | Hook run before accepting an article. |
nndiary-request-create-group-functions | Hook run after ‘nndiary-request-create-group’ is executed. |
nndiary-request-update-info-functions | Hook run after ‘nndiary-request-update-info’ is executed. |
nndiary-split-methods | NNDiary specific split methods. |
nndiary-version | Current Diary back end version. |
nndiary-week-starts-on-monday | Whether a week starts on monday (otherwise, sunday). |