On 17 Feb 2004, at 06:48, Geoff Powell wrote:


Hello,

I have been using mailman's withlist feature with a basic python script
called nomail, to list all users in a database with the nomail property
set to 1, it looked something like:

import sys

from Mailman import mm_cfg

def nomail(list):
        for member in list.members.keys()
                if list.user_options[member] &&
Mailman.mm_cfg.DisableDelivery:
                        print member
        pass

        for member in list.digest_members.keys()
                if list.user_options[member] &&
Mailman.mm_cfg.DisableDelivery:
                        print member
        pass
        
        sys.exit(0)

(There could be errors in this code block)

Since updating the system, and mailman is now version 2.1.2-2, the
script is not working correctly. It appears to be printing out ALL users
in the database, indicating they all have the nomail field set to 1.


I have found that in /var/mailman/Mailman/Defaults.py, there is a line
with a comment next to DisableDelivery stating it is obsolete (and
DisableDelivery is set to 1, I assume this is why the users all have the
value as 1?). The line says I should use getDeliveryStatus(), is there
any documentation on how I can update my script to utilise this method,
or can anyone please give me a hint?

This works for me:


1. with $prefix/Mailman as your pwd, use the following command to find where the function is defined in the Python source:

find . -name "*.py" | xargs grep "def getDeliveryStatus"

2. from the output pick a module that implements the function; there are several implementations defined in different modules on different classes

3. either read the code or use withlist to read the function's docstring

[EMAIL PROTECTED]:/mailman/run/Mailman> ../bin/withlist -i all-users-list
Loading list all-users-list (unlocked)
The variable `m' is the all-users-list MailList instance
>>> from Mailman import MemberAdaptor
>>> print MemberAdaptor.MemberAdaptor.getDeliveryStatus.__doc__
Return the delivery status of this member.

Value is one of the module constants:

ENABLED - The deliveries to the user are not disabled
UNKNOWN - Deliveries are disabled for unknown reasons. The
primary reason for this to happen is that we've copied
their delivery status from a legacy version which didn't
keep track of disable reasons
BYUSER - The user explicitly disable deliveries
BYADMIN - The list administrator explicitly disabled deliveries
BYBOUNCE - The system disabled deliveries due to bouncing


        If member is not a member of the list, raise NotAMemberError.
 >>>
Finalizing
[EMAIL PROTECTED]:/mailman/run/Mailman>


Thanks in advance,


Geoff

-----------------------------------------------------------------------
Richard Barrett                               http://www.openinfo.co.uk


------------------------------------------------------ Mailman-Users mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/

This message was sent to: [EMAIL PROTECTED]
Unsubscribe or change your options at
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Reply via email to