summaryrefslogtreecommitdiff
path: root/src/mailman/queue
Commit message (Collapse)AuthorAgeFilesLines
...
* * Add REST interface for joining a mailing list.Barry Warsaw2009-12-281-0/+6
| | | | | | * add_member() now returns the newly created IMember. * Reorganized several exceptions and exposed them to the REST API. * Added NoSuchListError.
* IRegistrar is now a utility; it doesn't need to be adapted from an IDomain.Barry Warsaw2009-12-121-2/+1
| | | | | | | This is because registration confirmation messages must come from the mailing list that the subscription request came from. Remove IDomain.confirm_address() since this lives only on the IMailingList now.
* * Refactor the language manager off of the config object and into a utility.Barry Warsaw2009-12-102-9/+20
| | | | | | | | * Fix a few small typos in exception handlers. * Move the initialization of the Zope Component Architecture into the first initialization step. The only reason we couldn't do that previously was because the domain object referenced the config, causing a circularity problem. Refactor the Domain implementation to avoid that.
* Add a 'name' attribute to the Switchboards. This is so 'whichq' can be setBarry Warsaw2009-12-103-14/+19
| | | | for bin/mailman unshunt.
* * Make IDomainManager a utility, since the config object is global.Barry Warsaw2009-12-082-7/+10
| | | | | | | | * Give IMailingList a .domain attribute which looks up the IDomain for its .host_name. This cleans up a lot of code. * Add a test for the 'confirm' email command. * Suppress blank lines in email command responses. * Make the IDomainCollection a utility.
* Fix some test failures:Barry Warsaw2009-12-081-2/+2
| | | | | * when postfix is not installed * because the Subject values are instances, not strings
* Fix a test.Barry Warsaw2009-12-061-2/+11
|
* * Fix a test based on updated output.Barry Warsaw2009-12-064-36/+358
| | | | | | | | | * Add a stub for the -confirm email command * Add stubs for -leave and -unsubscribe * Remove the crufty (and broken) 'tojoin' 'toleave' and 'toconfirm' metadata keys for synchronizing between lmtp and the command runner. Replace this by putting the subaddress recognized by lmtp into the metadata and having the command runner look at the subaddress.
* Revert the last changes. Calculate size where needed.Barry Warsaw2009-12-051-1/+0
|
* The delivery agent requires that the message object have a .original_sizeBarry Warsaw2009-12-041-4/+8
| | | | attribute. Add this for UserNotifications.
* Fix a test and make Sphinx happy.Barry Warsaw2009-11-281-40/+40
|
* Refactor VERP calculation so that it's now in the outgoing queue instead ofBarry Warsaw2009-11-272-29/+363
| | | | | | the to-outgoing handler. Putting it in the latter means that more delivery vectors can take advantages of the same mechanisms. to-outgoing is now really simple (but is it simple enough?).
* Factor out most of the i18n subsystem and convert to using the flufl.i18nBarry Warsaw2009-11-154-10/+10
| | | | package.
* Cleanup.Barry Warsaw2009-11-044-4/+0
|
* smtp_direct.py is dead and gone.Barry Warsaw2009-11-031-8/+8
|
* Add decorations.Barry Warsaw2009-11-016-14/+14
| | | | s/recips/recipients/
* Convert bin/inject to bin/mailman injectBarry Warsaw2009-09-191-1/+0
| | | | | | Expose the database store on .store instead of ._store A few other cleanups.
* Remove the user_manager attribute from config.db and expose it as anBarry Warsaw2009-08-261-1/+5
| | | | IUserManager utility.
* Instead of using an adapter, use a utility to get the mailing list manager.Barry Warsaw2009-08-262-2/+4
|
* TweaksBarry Warsaw2009-08-241-3/+4
|
* Test updates and repair.xoBarry Warsaw2009-08-214-6/+10
|
* Expose 'transaction' as an alias for config.db in the doctest globs. ThisBarry Warsaw2009-07-213-3/+4
| | | | | | | | means commit() is now transaction.commit() in doctests. Add tests of extended domain creation, which exposes the need to unlock the database (via transaction.abort()) so that the foreground test process doesn't lock the background REST server process.
* Our first writable REST API! You can now create new domains through theBarry Warsaw2009-07-201-3/+4
| | | | | | | | | webserver. Fix the https/http urls. Add the adapter for HTTPCharsets so POSTs work properly. Nice little cargo cult from lazr.restful.
* De-u-literal-ify our doctests.Barry Warsaw2009-07-188-47/+55
|
* Refactor __import__'s into a separate utility module.Barry Warsaw2009-05-162-4/+4
|
* rsplit -> rpartitionBarry Warsaw2009-05-151-3/+3
|
* Linux signal management appears to work differently than OS X. Introduce aBarry Warsaw2009-05-112-0/+4
| | | | | runner flag to indicate whether the qrunner parent process should intercept signals or not. The REST server should not intercept signals.
* More tests for the REST server, this time, for the queue runner.Barry Warsaw2009-05-102-0/+29
| | | | | | | | | | | Add logging to the RESTRunner. Also, use pkg_resources.resource_stream() instead of .resource_string() where appropriate. Add a bunch of XXX comments for things I need to figure out about the Zope-ish parts of the lazr.restful implementation. Change __getitem__() api to _lookup().
* Several RESTful updates.Barry Warsaw2009-05-061-1/+1
| | | | | | * Fix a typo in the runner * Add support for 404 Not Found exceptions * Suppress sha module deprecation warnings from lazr.restful
* A working test of the REST server. http://localhost:8001/3.0/sys returnsBarry Warsaw2009-05-041-2/+2
| | | | useful information. It's GET only atm.
* The very basics of a working REST server. Only works for localhost:8001/sysBarry Warsaw2009-05-031-0/+50
|
* Move the Action and NewsModeration enums into their own interface files.Barry Warsaw2009-03-252-3/+3
|
* Get rid of one_last_digest. Move this into a separate OneLastDigest table.Barry Warsaw2009-02-222-44/+169
| | | | | | | | | | | | | Make it explicit to get the last digest (I could imagine an user selecting not to). Actually add tests for this. Start to get rid of 'from storm.locals import *' in favor of more specific imports. Start to use Store.of() instead of config.db.store where we can. Rework (delivery)MemberRosters to use the Member attributes. This ensures that the layered lookup happens at the expense of query optimization. Sundry and various cleanups.
* Major cleanup of the automatic response stuff.Barry Warsaw2009-02-193-9/+6
| | | | | | | | | inject_message() grows a keyword argument dictionary which gets merged into the message metadata. Move NODELTA into the autorespond interface as ALWAYS_REPLY. Convert the integer response values into the ResponseAction enum.
* Remove Utils.ParseEmail() and Utils.midnight().Barry Warsaw2009-02-121-3/+3
|
* Much clean up of the language code, though more can be done. Factor out theBarry Warsaw2009-02-123-7/+8
| | | | | | | language manager stuff into a separate Language class, and be clearer in the APIs about whether we want a language code or a Language instance. The impetus to this was to get rid of Utils.GetCharSet(), which is done.
* Clean up and reorganization languages and the language manager.Barry Warsaw2009-02-101-2/+0
|
* Move mailman.Message to mailman.email.Message. Rename Message.get_sender() toBarry Warsaw2009-02-095-14/+11
| | | | | | | | | Message.sender (property) and Message.get_senders() to Message.senders (another property). The semantics of .sender is slightly different too; it no longer consults config.mailman.use_envelope_sender. Add absolute_import and unicode_literals to Utils.py, and clean up a few imports.
* Repair some test failures and fix a doc typo as reported by Patrick Koetter.Barry Warsaw2009-02-042-22/+12
|
* Massive digester rework.Barry Warsaw2009-02-045-10/+879
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves actual digest creation and sending into a new queue runner. That way, digest creation does not block the main incoming processor. Lots of code clean up and reorganization too, and many fixes. digest_last_sent_at: Make this a DateTime digest_size_threshold: Make this a Float digest_volume_frequency: Make this an Enum DigestFrequency: new enum Fix up IMailingList interface to reflect reality. In Runner base class, allow for msg.get_sender() to return a False value. If this happens (as it can with the empty marker messages used to signal the digester that there's work to do), just use the list's preferred language. Give the retry.py and incoming.py queue runner modules some proper epilogues. The EmptyingRunner (for testing) logs itself as the runner its wrapping. The digest file name now ends in .mmdf since that's the format we're using. Add 'create_list' to doctest globals. Add a Mailbox class to add support for the context manager protocol.
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-2522-0/+3089
correctly regardless of how it's used.