summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Japanese updates by Tokio Kikuchibwarsaw2002-03-266-808/+831
|
* Japanese version of this new file by Tokio Kikuchibwarsaw2002-03-261-0/+22
|
* main(): Get rid of cgi-bin/archives program; it's long been obsolete.bwarsaw2002-03-261-1/+2
|
* CGI_PROGS: Get rid of the `archives' program. It's long been obsolete.bwarsaw2002-03-261-2/+2
|
* _snooze(): Use self.SLEEPTIME instead of mm_cfg.QRUNNER_SLEEP_TIME forbwarsaw2002-03-261-2/+4
| | | | | additional indirection that's overridden by the BounceRunner. Defaults to QRUNNER_SLEEP_TIME for backwards compatibility.
* A significant rewrite of the main bounce runner logic to make itbwarsaw2002-03-261-112/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | perform better. In general there are two changes: 1) we never lock a list until and unless absolutely necessary, 2) we only run the bounce runner once every minute (as opposed to the normal runners' once-per-second sleep time). Specifically, SLEEPTIME: The base class now looks at this attribute to decide how long to sleep between loop iterations, and it defines a default. We override the bounce runner's value to lengthen the time it sleeps to 1 minute (we may eventually want to move this to Defaults.py). __scanbounce(): Gone. All its functionality is subsumed in the new ScanMessages() method and the new _dispose(). __verpbounce(): Renamed to the non-method verp_bounce(). Also, we rip out the code that iterates through all the lists if the bounce came to the site list's -bounces address. _dispose(): Simply calls verp_bounce() to find bouncing addresses, and if that returns a false value (empty list), calls ScanMessages() to see if the bounce detector can find some bouncing addresses. If not, we're done (after possibly forwarding the non-matching message). Otherwise, we register the bounce either on the target mailing list, or on all the mailing lists if this came to the site's -bounces address.
* ScanMessage(): This is an internal API change to make life much easierbwarsaw2002-03-261-59/+7
| | | | | | | | | | for the BounceRunner. Instead of actually registering the bounces here, it simply returns the list of addresses that have matched. It returns an empty list if none of the bounce detectors found any addresses. I'm also ripping out the test code. The unit test suite is more appropriate.
* A new ack.bwarsaw2002-03-261-0/+1
|
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-6/+5
| | | | | | | | | | | GetBouncesEmail(): Return the list's -bounces address. GetAdminEmail(): Obsolete, removed. AddMember(), ChangeMemberAddress(), ConfirmUnsubscription(): Make the notification email appear to come from the -bounces address. When the sender is for human consumption, make it the -owner address (or in the case of Cleanse.py for anonymous lists, the list posting address).
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-1/+1
| | | | | process(): Make the notification email appear to come from the -bounces address.
* pending_requests(): We don't need to compare the length of the infobwarsaw2002-03-261-14/+4
| | | | | package to know how to unpack the request record. bin/update should now canonicalize them.
* dolist(): Update the requests.db database for canonicalized recordbwarsaw2002-03-261-0/+4
| | | | lengths.
* GetAdminEmail() eradication campaign.bwarsaw2002-03-267-7/+7
| | | | | | | process(), hold_for_approval(), do_discard(): Make the notification email appear to come from the -bounces address. When the sender is for human consumption, make it the -owner address (or in the case of Cleanse.py for anonymous lists, the list posting address).
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-1/+1
| | | | | process_form(): Make the notification email appear to come from the -bounces address.
* show_helds_overview(): We can always guarantee that the length of thebwarsaw2002-03-261-5/+1
| | | | record in a message held request is always 6.
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-8/+8
| | | | | | | ParseMailCommand(), ProcessSubscribeCmd(), AddApprovalMsg(), ProcessHelpCmd(): For human consumption, we should point people at the -owner address as the contact address, but when sending the message out, it should come from the -bounces address for bounce processing.
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-4/+46
| | | | | | | | | | | | | | __handlepost(), __refuse(): Send messages from the -bounces address so that errors will get bounce processed. __refuse(): In the refuse.txt, use the -owner address as the %(adminaddr)s expansion so that when the human acts on this message, they'll contact a human without going through the bounce processor. _UpdateRecords(): This is will be used in bin/update to canonicalize all the request.db records. Specifically, the SUBSCRIPTION records will always be of length 6 and the HELDMSG records will also always be 6. For shorter records, provide reasonable defaults.
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-1/+1
| | | | | | | | GetStandardReplacements(): Expand <mm-owner> tags to the -owner address. This is more appropriate than the -bounces address because it reaches the human without going through the bounce processor. Since this ends up in a message that a human will act on, it's the correct address to use.
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-2/+2
| | | | | | SendUnsubscribeAck(), MailUserPassword(): These now look like they're coming from the -bounces address instead of the -admin address, which is deprecated.
* change_options(): A kludge, but don't set the emergency attribute frombwarsaw2002-03-251-2/+4
| | | | | | the form data if we're logging in. Apparently, using a checkbox in this way doesn't get us tri-state (i.e. None for not present, 0 and 1); it just gets us None or 1.
* Put the logout button in its own form so e.g. hitting return in thebwarsaw2002-03-2511-33/+34
| | | | | | | "change my real name" field won't log you out. Since this is just tag-twiddling I feel confident doing this for all languages, but... Translators, please proofread!
* a small updatemss2002-03-252-923/+568
|
* Fixed some broken tag placements which caused exceptions to occur inbwarsaw2002-03-252-4/+4
| | | | | the web ui when switching from one of the Chinese templates back to some other language.
* more proofreading!wilane2002-03-241-4/+4
|
* Feedback from Guido...bwarsaw2002-03-233-14/+28
| | | | | | | | | | | | | | | | | | | | listinfo.py list_listinfo(): If the list only has one language enabled, omit the language choice box. It's a waste of screen real-estate. HTMLFormatter GetStandardReplacements(): ditto options.py loginpage(): ditto. Also omit the paragraph that talks about session cookies. It's probably over the heads of most users. main(): Don't print the "No address given" if we're traveling here from the listinfo page and they left the address field blank, as per the instructions.
* Add markup for the "set-digest-format-globally" button. Also, sincebwarsaw2002-03-2211-21/+43
| | | | | | | | this is all just markup, I'm adding the <link> tag in the head for the favicon. Translators, please double check. I got the text for "Set globally" by cutting and pasting.
* Good suggestion by Fred Drake: the delivery of MIME vs. plain textbwarsaw2002-03-221-18/+41
| | | | | | | | | | | | | | | | | | should be settable globally, since you're probably using the same MUA for all your list traffic. Specifically: main(): Define a Global class as a bag of attributes, and use this instead of the separate global_* variables. Added the extraction of the mime-globally form variable which sets the MIME digest setting globally. Always call global_options(), which now does the "do we need to do anything" test before locking the list. options_page(): Replace <mm-global-mime-button> with a checkbox for setting the MIME/plain text flag. global_options(): Signature changed to take an instance. Make sure that all non _* attributes have a non-None value before locking the list. Also, set the DisableMime member option.
* GetStandardReplacements(): Add <mm-favicon> for a url replacement inbwarsaw2002-03-221-0/+1
| | | | the head's LINK SHORTCUT ICON.
* main(): Fix some of the messages so the end with a period and a space,bwarsaw2002-03-221-2/+2
| | | | | otherwise status for multiple actions may run together. Found by Fred Drake.
* More additions and changes contributed by Stefan Divjak (std at std dot priv ↵jensv2002-03-2117-204/+274
| | | | dot at)
* Good proofreading job by "L'homme moderne" <moderne@homme-moderne.org>wilane2002-03-202-27/+24
| | | | Thanks!
* Fixed typos caught by Fil.wilane2002-03-192-4/+5
|
* done: cronpass.txtmss2002-03-192-9/+8
|
* done: roster.htmlmss2002-03-192-8/+7
|
* main(): Bogus format string specification, caught by Mikhail Sobolev.bwarsaw2002-03-191-1/+1
|
* Fixed a typo caught by L'homme Moderne, Thanks.wilane2002-03-182-4/+2
|
* Fixed a typo, originally reported by Michael Totschnig for the french ↵avalon2002-03-182-2/+1
| | | | translation. French translator Ousmane Wilane kindly points out that this typo also existed in the norwegian translation. Thanks, Ousmane.. :-D
* Fixed a missing `s' thanks to Michael Totschnig.wilane2002-03-182-1/+1
| | | | | Note: Daniel Buchmann: It looks like the no catalog have the same problem.
* Corrected a mistake caught by Fil, Thanks guy!wilane2002-03-182-1/+1
|
* Update some comments.bwarsaw2002-03-171-1/+1
|
* Minor typobwarsaw2002-03-171-5/+5
|
* Arg! Last minute buglet. Get rid of all traces of bin/digest_arch.bwarsaw2002-03-173-6/+4
| | | | Try again.
* Heh, src/alias-wrapper.c is gone now and configure depended on it, sobwarsaw2002-03-172-4/+4
| | | | that broke it! Use src/common.h now.
* Typo noticed by Dan Buchmann.bwarsaw2002-03-161-1/+1
|
* Updates after bumping version number.bwarsaw2002-03-165-11/+11
|
* Updatedbwarsaw2002-03-161-1/+1
|
* Remove obsolete files.bwarsaw2002-03-163-322/+0
|
* Update copyright years.bwarsaw2002-03-1693-95/+93
|
* A bunch of little updates.bwarsaw2002-03-161-5/+10
|
* Add a security note, and a performance note.bwarsaw2002-03-161-0/+24
|