summaryrefslogtreecommitdiff
path: root/Mailman/Digester.py
diff options
context:
space:
mode:
authorbwarsaw1999-03-09 02:49:44 +0000
committerbwarsaw1999-03-09 02:49:44 +0000
commit67471beb708167050487394dba83dff6360e5b48 (patch)
treeee913ecbb0118b07d5885b03d326224cb28f3092 /Mailman/Digester.py
parent7fe5978dc2fe90e7f8515c5af15e9a66f1ce9408 (diff)
downloadmailman-67471beb708167050487394dba83dff6360e5b48.tar.gz
mailman-67471beb708167050487394dba83dff6360e5b48.tar.zst
mailman-67471beb708167050487394dba83dff6360e5b48.zip
Diffstat (limited to 'Mailman/Digester.py')
-rw-r--r--Mailman/Digester.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/Mailman/Digester.py b/Mailman/Digester.py
index 3455ba3e1..306f65150 100644
--- a/Mailman/Digester.py
+++ b/Mailman/Digester.py
@@ -39,7 +39,7 @@ or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
%(got_owner_email)s
-(When replying, please edit your Subject line so it is more specific than
+When replying, please edit your Subject line so it is more specific than
"Re: Contents of %(real_name)s digest...")
"""
@@ -118,6 +118,10 @@ class Digester:
else:
if not self.nondigestable:
raise Errors.MMMustDigestError
+ try:
+ self.one_last_digest[addr] = self.digest_members[addr]
+ except AttributeError:
+ self.one_last_digest = {addr: self.digest_members[addr]}
del self.digest_members[addr]
self.members[addr] = 1
self.Save()
@@ -256,11 +260,15 @@ class Digester:
return not s.GetUserOption(x, v)
def HatesMime(x, s=self, v=mm_cfg.DisableMime):
return s.GetUserOption(x, v)
- digestmembers = self.GetDigestMembers()
+ try:
+ final_digesters = self.one_last_digest.keys()
+ except AttributeError:
+ final_digesters = []
+ digestmembers = self.GetDigestMembers() + final_digesters
recipients = filter(DeliveryEnabled, digestmembers)
mime_recipients = filter(LikesMime, recipients)
text_recipients = filter(HatesMime, recipients)
-
+
self.LogMsg("digest",
('%s v %d - '
'%d msgs %d dgstrs: %d m %d non %d dis'),
@@ -271,12 +279,10 @@ class Digester:
len(mime_recipients),
len(text_recipients),
len(digestmembers) - len(recipients))
-
if mime_recipients or text_recipients:
d = Digest(self, topics_text, digest_file.read())
else:
d = None
-
# Zero the digest files only just before the messages go out.
topics_file.truncate(0)
topics_file.close()
@@ -284,6 +290,8 @@ class Digester:
digest_file.close()
self.next_digest_number = self.next_digest_number + 1
self.next_post_number = 1
+ # these folks already got their last digest
+ self.one_last_digest = {}
self.Save()
if text_recipients: