[Mailman-Developers] Re: [Mailman-Users] admin requests on the lists
Scott
scott@chronis.pobox.com
Fri, 13 Nov 1998 14:24:26 -0500
Ok, here's a better version. fixes the readlines thing, and strips the sig.
#
# given an IncomingMessage object,
# test for administrivia (eg subscribe, unsubscribe, etc).
# the test must be a good guess -- messages that return true
# get sent to the list admin instead of the entire list.
#
def IsAdministrivia(msg):
lines = map(string.lower, string.split(msg.body, "\n"))
#
# check to see how many lines that actually have text in them there are
#
admin_data = {"subscribe": (0, 3),
"unsubscribe": (0, 1),
"who": (0,0),
"info": (0,0),
"lists": (0,0),
"set": (2, 3),
"help": (0,0),
"password": (2, 2),
"options": (0,0),
"remove": (0, 0)}
lines_with_text = 0
print lines
for line in lines:
if string.strip(line):
lines_with_text = lines_with_text + 1
if lines_with_text > 30: # we might want to change this to mm_cfg.DEFAULT_MAIL_COMMANDS_MAX_LINES.
return 0
sig_ind = string.find(msg.body, "\n-- ")
if sig_ind != -1:
body = msg.body[:sig_ind]
else:
body = msg.body
if admin_data.has_key(string.lower(string.strip(body))):
return 1
try:
if admin_data.has_key(string.lower(string.strip(msg["subject"]))):
return 1
except KeyError:
pass
for line in lines[:5]:
if not string.strip(line):
continue
words = string.split(line)
if admin_data.has_key(words[0]):
min_args, max_args = admin_data[words[0]]
if min_args <= len(words[1:]) <= max_args:
return 1
return 0
scott
On Fri, Nov 13, 1998 at 08:18:32PM +0100, Gergely Madarasz wrote:
| Hello!
|
| I think I found it.
| In IsAdministrivia:
| lines = map(string.lower, msg.readlines())
| This returns the whole message, and then checks for administrivia in it,
| including the headers. Some mailers add custom headers, mta-s add Received
| headers, so we cannot tell how many header lines there can be. And then it
| checks
| if lines_with_text > 10:
| headers will be counted too. So I guess this should be modified to check
| only the body of the message. Now I increased this number to 30, should
| work in most cases, but this is only a hack... :)
|
| --
| Madarasz Gergely gorgo@caesar.elte.hu gorgo@linux.rulez.org
| It's practically impossible to look at a penguin and feel angry.
| Egy pingvinre gyakorlatilag lehetetlen haragosan nezni.
| HuLUG: http://mlf.linux.rulez.org/
|
|
| _______________________________________________
| Mailman-Developers maillist - Mailman-Developers@python.org
| http://www.python.org/mailman/listinfo/mailman-developers
|