[Mailman-Users] Changing multiple lists via withlist
Mark Sapiro
msapiro at value.net
Thu Dec 8 01:46:22 CET 2005
Robert Haack wrote:
>I have over 120 lists for which I need to make a couple of changes to
>the config files. I don't really want to do this manually and I have
>very limited Python experience. I believe from what I've seen that
>withlist is my best option but I could be wrong. The two things I want
>to change are:
>
>1) Change the message footer for non digest option.
>2) I also have the need to add/remove email addresses in "List of
>non-member addresses whose postings should be automatically accepted"
>section Privacy Options - Sender Filters.
Both these tasks are amenable to a withlist --all solution IF you want
the resulatant footer to be the same on all 120 lists and if you want
either the same accept_these_nonmembers result or the same additions
and deletions on all 120 lists.
>I looked in the FAQ and searched the archives but I did not see anything
>like what I'm looking for.
>
>Does anybody have some similar examples that they could share with me or
>perhaps point me to another web site that would help with this?
If you know Python, the examples in withlist --help and in the archives
of this list are probably enough. If you don't know Python, probably
nothing short of a specific solution will do.
Here's something off the top of my head, untested even for syntax
errors and no warranty.
-----------------start of ListMods.py----------------
def new_footer(mlist):
mlist.Lock()
mlist.msg_footer = """___________________________________
line after underscore line above
next line
last line
"""
mlist.Save()
mlist.Unlock()
def add_accept(mlist, user):
mlist.Lock()
if user in mlist.accept_these_nonmembers:
print "%s: %s already in accept_these_nonmembers" % (
mlist.real_name, user)
else:
mlist.accept_these_nonmembers.append(user)
mlist.Save()
mlist.Unlock()
def del_accept(mlist, user):
mlist.Lock()
if user in mlist.accept_these_nonmembers:
del mlist.accept_these_nonmembers[
mlist.accept_these_nonmembers.index(user)]
else:
print "%s: %s not in accept_these_nonmembers" % (
mlist.real_name, user)
mlist.Save()
mlist.Unlock()
-----------------------end of ListMods.py--------------
Save ListMods.py in bin/ Then to set the above msg_footer in all
lists, run
bin/withlist --all --run ListMods.new_footer
to add x at example.com to all list's accept_these_nonmembers, run
bin/withlist --all --run ListMods.add_accept x at example.com
To delete y at example.com from all list's accept_these_nonmembers, run
bin/withlist --all --run ListMods.del_accept y at example.com
You could also define a new_accept(mlist) function to simply assign a
list of addresses to mlist.accept_these_nonmembers analagous to the
new_footer function except with a list of addresses instead of a
multiline string.
--
Mark Sapiro <msapiro at value.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
More information about the Mailman-Users
mailing list