Port header matching previously described by the misnamed KNONW_SPAMMERS
[mailman.git] / Mailman / Digester.py
blobc0878ecc7c1a619d5ef7d891544d499de49a839e
1 # Copyright (C) 1998-2007 by the Free Software Foundation, Inc.
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
16 # USA.
19 """Mixin class with list-digest handling methods and settings."""
21 import os
22 import errno
24 from Mailman import Errors
25 from Mailman import Utils
26 from Mailman.Handlers import ToDigest
27 from Mailman.configuration import config
28 from Mailman.i18n import _
32 class Digester:
33 def send_digest_now(self):
34 # Note: Handler.ToDigest.send_digests() handles bumping the digest
35 # volume and issue number.
36 digestmbox = os.path.join(self.fullpath(), 'digest.mbox')
37 try:
38 try:
39 mboxfp = None
40 # See if there's a digest pending for this mailing list
41 if os.stat(digestmbox).st_size > 0:
42 mboxfp = open(digestmbox)
43 ToDigest.send_digests(self, mboxfp)
44 os.unlink(digestmbox)
45 finally:
46 if mboxfp:
47 mboxfp.close()
48 except OSError, e:
49 if e.errno <> errno.ENOENT:
50 raise
51 # List has no outstanding digests
52 return False
53 return True
55 def bump_digest_volume(self):
56 self.volume += 1
57 self.next_digest_number = 1