| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
Fix the Utils.maketext() calls to pass the language in as a keyword
argument.
Fix some _() wrappings to use local variables.
|
| | |
|
| |
|
|
| |
BOUNCEQUEUE_DIR -> CMDQUEUE_DIR
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Untabification.
GetConfigInfo(): Reformat many of the strings to be triple-quoted
instead of adjacent string concat.
Fix the Utils.maketext() calls to pass the language in as a keyword
argument.
Fix some _() wrappings to use local variables.
[Note this file may still have problems -- e.g. Utils.GetCharSet()]
|
| |
|
|
|
|
| |
find the template if lists/<listname>/<lang> doesn't exist. The
update script now creates the `en' language subdir and moves all the
templates into it.
|
| |
|
|
|
|
| |
hostname (for consistency with _() translations) - thanks Ron Jarrell.
De-string-module-ify while I was at it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
RegisterBounce on known permanent failures. These are handed to us
via the exception object when SomeRecipientsFailed is raised. Append
any permanent failures to an instance variable to be handled in the
_doperiodic() method.
Temporary failures are still handled the same way, except we only
requeue the message if we've actually got temp failures to retry.
_doperiodic(): Periodically, we attempt to acquire the list lock and
register all permanent failures we've got pending for that list.
|
| |
|
|
|
|
|
| |
have the list lock. Instead, just append permanently failing
recipients to another list. Raise SomeRecipientsFailed if there were
either temp or perm failures, and return both lists in the exception
instance.
|
| |
|
|
|
|
| |
maketext(): If the language specific template file doesn't exist, fall
back to using $MM/templates. This helps with bootstrapping but may
not be the correct long term solution.
|
| |
|
|
| |
that differently now.
|
| | |
|
| |
|
|
|
| |
module. Also, default to getting the source templates out of
$MM/templates if $MM/templates/<lang> doesn't exist.
|
| |
|
|
|
|
| |
Mailman.i18n._ to be the default translator so installing
gettext.gettext just causes weird errors to occur if the module
doesn't import it's own copy. Second, it's way too magical.
|
| |
|
|
|
| |
the temporaries and the permanents. Store these in instance
variables.
|
| |
|
|
|
| |
the trailing newline actually left nothing but the trailing newline!
Caught by Ron Jarrell.
|
| |
|
|
|
|
|
|
| |
Drop the use of the crypt stuff in favor of sha.
Some i18n updates.
A few other Python 2.0 features used where appropriate.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
De-string-module-ification. Move SafeDict out of this file. Remove
the Crypt stuff, using sha instead.
SetSiteAdminPassword(), CheckSiteAdminPassword(): Use sha to write the
new admin password. Check...() doesn't attempt to compare the
challenge against the crypt'd password if the sha comparison fails
because the site admin password is much easier to change than all the
list passwords.
IsAdministrivia() -> is_administrivia(), and mimelib-ify
open_ex(): Removed
reap(): Additional optional argument `once' which says to just go
through the waitpid main loop once.
hexlify/unhexlify crud removed (Python 2.0's got them in its binascii
module).
GetDirectories(), GetLanguageDescr(), GetCharSet(): Added for i18n
support.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qfiles/in. Lists and messages can actually override this.
QRUNNERS: List and number of qrunners to start for each qfiles
directory.
QRUNNER_SLEEP_TIME: length of time in seconds that a queue runner
should sleep if it finds no files in its qfiles/* directory.
QRUNNER_LOCK_LIFETIME, QRUNNER_PROCESS_LIFETIME, QRUNNER_MAX_MESSAGES,
DEFAULT_FILTER_PROG, USE_CRYPT: deleted.
METAFMT_{MARSHAL,BSDDB_NATIVE,ASCII}, METADATA_FORMAT: Used for
selecting which .db format to use for message metadata.
ARCHQUEUE_DIR, SHUNTQUEUE_DIR, VIRGINQUEUE_DIR: new qfiles
subdirectories.
Temporary (hopefully) hack to get Python's site-packages directory in
the standard path. This will go away when mimelib is distributed with
Mailman.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
References to HandlerAPI module removed.
Also, remove filter_prog attribute from the list object.
GetConfigInfo(): Add lots of i18n markup for translatable strings.
All the attribute descriptions and details are now marked.
AddMember(), ApprovedAddMember(), DeleteMember(): Use new Message
interface for sending internally crafted messages.
ApprovedAddMember(): Move the lang argument to the end for better
backwards compatibility.
HasExplicitDest(): Use new mimelib/Message interface.
HasMatchingHeader() -> hasMatchingHeader(), and simplify greatly.
|
| |
|
|
|
|
|
|
| |
MailList object. I don't think this was ever used and there are
better ways to do this now. Make sure this gets into the NEWS file.
NewVars(): Simplify interface by using a local=global trick (this
won't be necessary in Python 2.1!)
|
| | |
|
| | |
|
| |
|
|
| |
Bump the QFILE_SCHEMA_VERSION to handle the new file formats.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and use the switchboard interface. Specifically,
Message class now multiply derives from mimelib.Message.Message and
mimelib.ReprMixin.ReprMixin (for __str__() and get_text()).
Other method changes:
GetSender() -> get_sender()
__init__(), __repr__(), __str__(), Enqueue(), Requeue(): removed
OutgoingMessage class removed
UserNotification class now inherits from Message and adds:
send(): A convenience method for taking an internally crafted message
and queuing it to the qfiles/virgin queue.
|
| |
|
|
|
|
|
|
|
|
| |
References to HandlerAPI module removed.
Use new mimelib and switchboard interfaces.
Use other Python 2.0 features as appropriate.
NOTE: This whole module really needs a good rewrite.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Carlos's contribution or not. Specifically,
GetMailmanFooter(), FormatSubscriptionMsg(), FormatEditingOption():
Mark some strings as translatable, using the Mailman.i18n._
`auto-interpolating' function.
SnarfHTMLTemplate(): Catch IOErrors which could result if a list was
created in an older version of Mailman before the i18n support was
added.
GetStandardReplacements(): Watch out for missing list preferred
language (can happen to an older list which hasn't been updated). Use
DEFAULT_SERVER_LANGUAGE in that case.
InitTemplates(): Some additional code reorg.
|
| |
|
|
| |
since we're requiring Python 2.0. Good catch Thomas!
|
| |
|
|
|
|
|
|
|
| |
module included in Mailman/pythonlib). We use this one because it has
the most portable definition of the Unix-From separator.
De-string-module-ify.
Use new mimelib interface.
|
| |
|
|
|
|
|
|
| |
References to HandlerAPI module removed.
Use new mimelib and switchboard interfaces.
Use other Python 2.0 features as appropriate.
|
| |
|
|
| |
LoopError: all error classes are now moved here.
|
| |
|
|
|
|
|
|
| |
De-string-module-ify.
References to HandlerAPI module removed.
Use new mimelib interface.
|
| |
|
|
|
|
| |
References to HandlerAPI module removed.
Use new mimelib interface.
|
| |
|
|
| |
Utils.open_ex() is obsolete.
|
| | |
|
| |
|
|
| |
update_article(): Utils.open_ex() is obsolete.
|
| |
|
|
|
|
| |
ArchiveMail(): Interface change. This method no longer gets the
message metadata dictionary (it wasn't used anyway). Also, convert to
the mimelib interface.
|
| |
|
|
| |
readermode stuff, and mailbox.py has the factory argument.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and total number of slices). Create the runner-specific switchboard,
the shunt switchboard (for messages that generate uncaught
exceptions), and the mainloop stop flag. We also have no need for a
runner-specific lock since the qrunner watchdog infrastructure handles
all that for us now.
_dequeue(): This is no longer part of the Runner interface (it's been
moved to the Switchboard).
run(), __oneloop(), __onefile(): Rework the mainloop for flexibility
and robustness. run() is the main loop and handles KeyboardInterrupt
exceptons, guaranteed cleanup at mainloop exit, checking the stop flag
and calling _doperiod() after each cycle through the mainloop, and
sleeping for a while if there are no files in the queue directory.
__oneloop() handles cruising through the list of all the files in the
queue (modulo any hash space slicing) exactly once.
__onefile(): handles the work for one queue file.
_snooze(): sleeps for a specified amount of time.
_log(): A convenient logging facility for subclasses
_start(), _onefile(): deleted.
|
| | |
|
| | |
|
| |
|
|
| |
hash function used everywhere in Mailman now.
|
| |
|
|
|
|
|
|
|
|
|
| |
the response against the SHA encrypted password. If that fails, and
the crypt module can be imported, try that as a fallback, but if that
succeeds, update the password to be the SHA1 version.
MakeCookie(), CheckCookie(): Use Python 2.0's binascii.{un,}hexlify()
functions instead of the slower (and obsolete) ones in Utils.py.
ExtractApproval(): Removed.
|
| | |
|
| | |
|
| | |
|