diff options
| author | Barry Warsaw | 2008-06-15 00:01:55 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2008-06-15 00:01:55 -0400 |
| commit | ee349897c99a75da4da4698c64bee8cd0d743d97 (patch) | |
| tree | e2b00e3c9eb399d8dd77d6a60a30a996af57ed44 /mailman/pipeline/cook_headers.py | |
| parent | 67e437883d520bf7ea78ae55235892aa946ef0b4 (diff) | |
| parent | 3d192123461559445bd7e68ef163828bb51852e6 (diff) | |
| download | mailman-ee349897c99a75da4da4698c64bee8cd0d743d97.tar.gz mailman-ee349897c99a75da4da4698c64bee8cd0d743d97.tar.zst mailman-ee349897c99a75da4da4698c64bee8cd0d743d97.zip | |
Rework the archiver interface. Remove get_primary_archiver() since now there
can be any number of them.
get_list_url() -> list_url()
get_message_url() -> permalink()
Only add Archived-At header if mlist.archive is set.
Diffstat (limited to 'mailman/pipeline/cook_headers.py')
| -rw-r--r-- | mailman/pipeline/cook_headers.py | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/mailman/pipeline/cook_headers.py b/mailman/pipeline/cook_headers.py index c237c171a..4cda42c81 100644 --- a/mailman/pipeline/cook_headers.py +++ b/mailman/pipeline/cook_headers.py @@ -30,7 +30,7 @@ from email.Utils import parseaddr, formataddr, getaddresses from zope.interface import implements from mailman import Utils -from mailman.app.archiving import get_primary_archiver +from mailman.app.plugins import get_plugins from mailman.configuration import config from mailman.i18n import _ from mailman.interfaces import IHandler, Personalization, ReplyToMunging @@ -206,29 +206,24 @@ def process(mlist, msg, msgdata): 'List-Unsubscribe': subfieldfmt % (listinfo, mlist.leave_address), 'List-Subscribe' : subfieldfmt % (listinfo, mlist.join_address), }) - archiver = get_primary_archiver(mlist) if msgdata.get('reduced_list_headers'): headers['X-List-Administrivia'] = 'yes' else: # List-Post: is controlled by a separate attribute if mlist.include_list_post_header: headers['List-Post'] = '<mailto:%s>' % mlist.posting_address - # Add this header if we're archiving + # Add RFC 2369 and 5064 archiving headers, if archiving is enabled. if mlist.archive: - archiveurl = archiver.get_list_url() - headers['List-Archive'] = '<%s>' % archiveurl + for archiver in get_plugins('mailman.archiver'): + headers['List-Archive'] = '<%s>' % archiver.list_url(mlist) + permalink = archiver.permalink(mlist, msg) + if permalink is not None: + headers['Archived-At'] = permalink # XXX RFC 2369 also defines a List-Owner header which we are not currently # supporting, but should. - # - # Draft RFC 5064 defines an Archived-At header which contains the pointer - # directly to the message in the archive. If the currently defined - # archiver can tell us the URL, go ahead and include this header. - archived_at = archiver.get_message_url(msg) - if archived_at is not None: - headers['Archived-At'] = archived_at - # First we delete any pre-existing headers because the RFC permits only - # one copy of each, and we want to be sure it's ours. for h, v in headers.items(): + # First we delete any pre-existing headers because the RFC permits + # only one copy of each, and we want to be sure it's ours. del msg[h] # Wrap these lines if they are too long. 78 character width probably # shouldn't be hardcoded, but is at least text-MUA friendly. The |
