| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
|
|
| |
METADATA_FORMAT = METAFMT_ASCII. Because of patch #567288 by
Maximillian Dornseif, we have to upgrade the schema of any metadata
files (i.e. rejection-notice -> rejection_notice).
|
| |
|
|
|
| |
nice when METADATA_FORMAT = METAFMT_ASCII. This is part of patch
#567288 by Maximillian Dornseif.
|
| |
|
|
|
| |
nice when METADATA_FORMAT = METAFMT_ASCII. This is part of patch
#567288 by Maximillian Dornseif.
|
| |
|
|
|
|
| |
List-Id header when we add the mailing list's description.
uheader(), prefix_subject(): Refactored.
|
| |
|
|
|
| |
description. This will require catalog updates. Patch #605146 by Jon
Parise.
|
| |
|
|
|
| |
Applied patch #600368 by Simone Piunno to ease translations for some
languages.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
completeness (this really needs to be refactored).
Article.as_html(): Set the encoding of the page to the list's
preferred encoding, which seems to make the headers and bodies come
out okay when mixing languages -- at least as in the minimal testing
I've been able to do.
Woo boy, I'm really not positive about this change and would love a
second opinion. Martin?
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SF patch #634303, but I think it's better because it actually removes
code instead of adding it. We'll see what kind of holes Martin shoots
through my optimism. ;)
Specifically,
unicode_quote() -> Utils.uquote() everywhere
quick_maketext(): We can get rid of the `raw' argument since we're
never going to wrap html text here. Also, put in a defense for
lang=None and mlist=None (although in practice that doesn't happen).
Finally -- and this is the key -- pass the interpolated text through
Utils.uncanonstr() so that what we get back will be a unicode, with
any characters outside the lang's charset html-ified. I think this
simplifies matters by always encoding the indices to the charset of
the list's preferred language, at the expense of potentially larger
pages (which I don't care about).
html_TOC(): Add a http-equiv meta tag indicating the charset of this
page, which should fix display for the table of contents. Note that
the various archtoc.html templates need updating but I will check
those changes in next.
HyperArchive.add_article(), .choose_charset(),
.update_dirty_archives(): Removed.
|
| |
|
|
| |
since the same code was essentially shared in the archiver.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
unicode-ify the template and try the interpolation again. The error
can occur if the template has non-ascii characters in it and one of
the interpolation values is a unicode.
This was getting swallowed because UnicodeError is a subclass of
ValueError.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
message types. For compatible text/plain and multipart/mixed message,
we still attach in the easiest way. For other types we'll wrap the
whole message in a MIME multipart/mixed encapsulation.
The outstanding question is which headers to copy from the outer
message to the inner message. Currently we do just the Content-*
headers.
|
| |
|
|
|
|
|
|
| |
digest and non-digest delivery. listinfo.html now has
<mm-digest-question-start> and <mm-digest-question-end> tags which get
comment start/enders if the question is meaningless.
Requires template changes to all langauge's listinfo.html files.
|
| |
|
|
| |
subscribed, web-safe-ifying and uncanonstr'ing.
|
| |
|
|
|
| |
have already been unsub'd, e.g. by the list administrator. Log an
error message and throw the cookie away.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
messages. Specifically,
process(): Each part that we're scrubbing, we'll set the content type
explicity to text/plain (since that's what it is now). We also record
the character set of each part and if that's shared by all the
subparts, we'll just use that. But, if we don't know the charset of
any of the parts then we'll use the list's preferred language's
charset.
Then we'll make sure all the text/plain parts have the same character
set, using 'replace' if necessary. (We may eventually want to utf-8-ify
or html-entity-ify them in this case).
Patch slightly modified by Barry for i18n and style.
|
| |
|
|
| |
don't need it anymore.
|
| |
|
|
|
|
| |
email.Header should be sufficient. This change uses decode_header()
from email.Header instead of EncWord.decode(). The EncWord.py module
will be removed.
|
| |
|
|
|
| |
mailbox processing. It's good enough for the caller of this code to
do the exception handling.
|
| | |
|
| |
|
|
|
|
|
| |
pulling the Subject out of the command message. That's so later
(e.g. in cmd_confirm.py) we won't try to .lower() a None.
Closes SF bug report # 620032 by Ron Jarrell.
|
| |
|
|
|
|
| |
closes SF patch # 635227.
Also, whitespace normalization.
|
| | |
|
| |
|
|
|
| |
just an empty string. This avoids seeing the u'' when no real name
was given.
|
| |
|
|
| |
Personalization".
|
| |
|
|
| |
2, meaning "Full Personalization".
|
| |
|
|
|
| |
Personalization" meaning to additionally munge the To field. Update
the details for this option.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hold. Chuq says:
looks like 2.1b4 is evaluating messages slightly out of order. If
I get a large piece of spam (my message limit is 30K, the spam is,
say, 60k), it gets held as too large, before the evaluation can
take place that should reject it as being from a
non-subscriber. Seems to me these evaluations ought to be
reversed...
But I must have had a good reason for changing this in rev 2.102:
----------------------------
revision 2.102
date: 2002/08/23 19:56:08; author: bwarsaw; state: Exp; lines: +1 -1
GLOBAL_PIPELINE: Reordering the modules so that Hold comes before
Moderate.
----------------------------
Unfortunately, the checkin message doesn't give me a clue as to why I
made this change. I'm sure the reason will become evident soon
enough. :(
|
| | |
|
| |
|
|
|
| |
for which we actually have the charset support built into the system.
I think codecs.lookup() is the best way to determine this.
|
| |
|
|
| |
in the language of the create page.
|
| |
|
|
| |
giving it some text and a detail.
|
| |
|
|
|
|
|
|
|
|
|
| |
the membership management pages, the u/i for emergency moderation is
changed. Now, if the list is not being moderated, no indication under
the categories is made (we can change this if people want).
To turn on emergency moderation, you need to go to the General
category under Additional Settings. If you enable emergency
moderation, you will get the big red sign, but no checkbox -- the sign
will be linked to the VARHELP for the emergency option.
|
| |
|
|
|
|
| |
messages. It was too controversial to do To header rewriting by
default, but we might want to re-enabled this for a future version,
probably controlled by a configuration variable.
|
| |
|
|
|
|
| |
personalized messages. It was too controversial to do this by
default, but we might want to re-enabled this for a future version,
probably controlled by a configuration variable.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
applied. The problems were twofold:
- The _mlist attribute of Article objects was being pickled, causing
the *-article pickles to be around 10x too big.
- The article template files were being opened and re-read for each
article.
Fixes include pickling only a reference to the mailing list (i.e its
internal name), and caching both the MailList objects and the template
files. Specifically,
quick_maketext(): Front-end to the template cache, this has the same
signature as Utils.maketext(), but it caches as much of the results as
possible.
Article._open_list(): A MailList cache, stolen from Runner.py. Can
you say "re-factor"?
Article.__getstate__(): Don't pickle the _mlist instance, instead,
return an __listname key which contains the internal name of the
mailing list.
Article.__setstate__(): Watch for __listname and call _open_list() to
get a real MailList object.
Everywhere: Use quick_maketext() instead of Utils.make_text() to take
advantage of the template cache.
|
| |
|
|
|
|
|
|
|
|
| |
the lock object. The real problem, as sleuthed out by Dan Mick, was
that the archiver i18n patches added a _mlist attribute to Article
objects, which caused the MailList instances to get pickled into the
*-article pickles.
See fixes to HyperArch.py and HyperDatabase.py for additional
important fixes.
|
| | |
|
| |
|
|
|
|
| |
double %'s.
to_percent(): Vice versa.
|
| |
|
|
|
|
|
|
|
| |
where if the list lock couldn't be obtained, we couldn't register the
bounce and the message would get forwarded to the list owners.
Instead, let's just requeue it and try again later.
Note: untested! I'm checking this into cvs so I can test it on
python.org... yes on a live system. ;/
|
| |
|
|
| |
full name.
|
| | |
|
| |
|
|
|
|
|
| |
get_item_gui_description().
get_item_gui_description(): If the description is different than the
elaboration, use the term "Details", otherwise use the term "Edit".
|
| | |
|
| |
|
|
| |
sensible based on Chuq's (and my) experience with MimeDel.
|
| |
|
|
|
|
| |
Heinlein, show the received time of the held message, if available.
Also, some minor u/i tweaking.
|