summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbwarsaw2001-12-19 06:19:39 +0000
committerbwarsaw2001-12-19 06:19:39 +0000
commitda999b90a2bf3fe2b2f3693b4b1f9cce4735218f (patch)
treebc56acee01c457023165e2cbef86a8e0607a3268
parent9d01a94a431631e3e712ecb3dbe4fd49b620e8d2 (diff)
downloadmailman-da999b90a2bf3fe2b2f3693b4b1f9cce4735218f.tar.gz
mailman-da999b90a2bf3fe2b2f3693b4b1f9cce4735218f.tar.zst
mailman-da999b90a2bf3fe2b2f3693b4b1f9cce4735218f.zip
-rw-r--r--Mailman/OldStyleMemberships.py49
1 files changed, 47 insertions, 2 deletions
diff --git a/Mailman/OldStyleMemberships.py b/Mailman/OldStyleMemberships.py
index 2a0cde5e3..cd8fc5742 100644
--- a/Mailman/OldStyleMemberships.py
+++ b/Mailman/OldStyleMemberships.py
@@ -23,12 +23,13 @@ i.e. KEY is LCE.
This is the adaptor used by default in Mailman 2.1.
"""
+import time
from types import StringType
from Mailman import mm_cfg
from Mailman import Utils
from Mailman import Errors
-from Mailman.MemberAdaptor import MemberAdaptor
+from Mailman import MemberAdaptor
ISREGULAR = 1
ISDIGEST = 2
@@ -41,7 +42,7 @@ ISDIGEST = 2
-class OldStyleMemberships(MemberAdaptor):
+class OldStyleMemberships(MemberAdaptor.MemberAdaptor):
def __init__(self, mlist):
self.__mlist = mlist
@@ -131,6 +132,26 @@ class OldStyleMemberships(MemberAdaptor):
self.__assertIsMember(member)
return self.__mlist.topics_userinterest.get(member.lower(), [])
+ def getDeliveryStatus(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.delivery_status.get(
+ member.lower(),
+ # Values are tuples, so the default should also be a tuple. The
+ # second item will be ignored.
+ (MemberAdaptor.ENABLED, 0))[0]
+
+ def getDeliveryStatusChangeTime(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.delivery_status.get(
+ member.lower(),
+ # Values are tuples, so the default should also be a tuple. The
+ # second item will be ignored.
+ (MemberAdaptor.ENABLED, 0))[1]
+
+ def getBounceInfo(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.bounce_info.get(member.lower())
+
#
# Write interface
#
@@ -293,3 +314,27 @@ class OldStyleMemberships(MemberAdaptor):
# if topics is empty, then delete the entry in this dictionary
elif self.__mlist.topics_userinterest.has_key(memberkey):
del self.__mlist.topics_userinterest[memberkey]
+
+ def setDeliveryStatus(self, member, status):
+ assert status in (MemberAdaptor.ENABLED, MemberAdaptor.UNKNOWN,
+ MemberAdaptor.BYUSER, MemberAdaptor.BYADMIN,
+ MemberAdaptor.BYBOUNCE)
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ member = member.lower()
+ if status == MemberAdaptor.ENABLED:
+ if self.__mlist.delivery_status.has_key(member):
+ del self.__mlist.delivery_status[member]
+ # Otherwise, nothing to do
+ else:
+ self.__mlist.delivery_status[member] = (status, time.time())
+
+ def setBounceInfo(self, member, info):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ if status is None:
+ if self.__mlist.bounce_info.has_key(member):
+ del self.__mlist.bounce_info[member]
+ # Otherwise, nothing to do
+ else:
+ self.__mlist.bounce_info[member] = info