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