diff options
Diffstat (limited to 'Mailman/Digester.py')
| -rw-r--r-- | Mailman/Digester.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/Mailman/Digester.py b/Mailman/Digester.py index 6b6a3ef6b..a794bd865 100644 --- a/Mailman/Digester.py +++ b/Mailman/Digester.py @@ -60,7 +60,7 @@ class Digester: self.digest_footer = mm_cfg.DEFAULT_DIGEST_FOOTER # Non-configurable. - self.digest_members = [] + self.digest_members = {} self.next_digest_number = 1 def GetConfigInfo(self): @@ -104,25 +104,25 @@ class Digester: addr = self.FindUser(sender) if not addr: raise Errors.MMNotAMemberError - if addr in self.members: + if self.members.has_key(addr): if value == 0: raise Errors.MMAlreadyUndigested else: if not self.digestable: raise Errors.MMCantDigestError - self.members.remove(addr) - self.digest_members.append(addr) + del self.members[addr] + self.digest_members[addr] = 1 else: if value == 1: raise Errors.MMAlreadyDigested else: if not self.nondigestable: raise Errors.MMMustDigestError - self.digest_members.remove(addr) - self.members.append(addr) + del self.digest_members[addr] + self.members[addr] = 1 self.Save() -# Internal function, don't call this. + # Internal function, don't call this. def SaveForDigest(self, post): """Add message to index, and to the digest. If the digest is large enough when we're done writing, send it out.""" @@ -228,7 +228,8 @@ class Digester: def HatesMime(x, s=self, v=mm_cfg.DisableMime): return s.GetUserOption(x, v) - recipients = filter(DeliveryEnabled, self.digest_members) + digestmembers = self.GetDigestMembers() + recipients = filter(DeliveryEnabled, digestmembers) mime_recipients = filter(LikesMime, recipients) text_recipients = filter(HatesMime, recipients) self.LogMsg("digest", @@ -237,8 +238,8 @@ class Digester: self.LogMsg("digest", ('Fake %d digesters, %d disabled. ' 'Active: %d MIMEers, %d non.'), - len(self.digest_members), - len(self.digest_members) - len(recipients), + len(digestmembers), + len(digestmembers) - len(recipients), len(mime_recipients), len(text_recipients)) def SendDigest(self): @@ -255,7 +256,8 @@ class Digester: return not s.GetUserOption(x, v) def HatesMime(x, s=self, v=mm_cfg.DisableMime): return s.GetUserOption(x, v) - recipients = filter(DeliveryEnabled, self.digest_members) + digestmembers = self.GetDigestMembers() + recipients = filter(DeliveryEnabled, digestmembers) mime_recipients = filter(LikesMime, recipients) text_recipients = filter(HatesMime, recipients) @@ -265,10 +267,10 @@ class Digester: self.real_name, self.next_digest_number, topics_number, - len(self.digest_members), + len(digestmembers), len(mime_recipients), len(text_recipients), - len(self.digest_members) - len(recipients)) + len(digestmembers) - len(recipients)) if mime_recipients or text_recipients: d = Digest(self, topics_text, digest_file.read()) |
