Skip to content

Commit 2beb354

Browse files
committed
Fix: Add digestable property to OldStyleMemberships class
1 parent 5978168 commit 2beb354

1 file changed

Lines changed: 23 additions & 15 deletions

File tree

Mailman/OldStyleMemberships.py

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -232,26 +232,26 @@ def getMemberOption(self, member, flag):
232232
return not not (option & flag)
233233

234234
def getMemberName(self, member):
235-
"""Get the real name of a member.
236-
235+
"""Get the member's real name.
236+
237237
Args:
238238
member: The member's email address
239-
239+
240240
Returns:
241-
str: The member's real name, or None if not set
241+
The member's real name, or None if not found
242242
"""
243-
self.__assertIsMember(member)
244-
name = self.__mlist.usernames.get(member.lower())
245-
if name is None:
243+
try:
244+
fullname = self.__mlist.usernames[member]
245+
if isinstance(fullname, bytes):
246+
try:
247+
# Try Latin-1 first since that's what we're seeing in the data
248+
fullname = fullname.decode('latin-1', 'replace')
249+
except UnicodeDecodeError:
250+
# Fall back to UTF-8 if Latin-1 fails
251+
fullname = fullname.decode('utf-8', 'replace')
252+
return fullname
253+
except KeyError:
246254
return None
247-
if isinstance(name, bytes):
248-
try:
249-
# Try Latin-1 first since that's what we're seeing in the data
250-
name = name.decode('latin-1', 'replace')
251-
except UnicodeDecodeError:
252-
# Fall back to UTF-8 if Latin-1 fails
253-
name = name.decode('utf-8', 'replace')
254-
return str(name)
255255

256256
def getMemberTopics(self, member):
257257
self.__assertIsMember(member)
@@ -588,3 +588,11 @@ def ProcessConfirmation(self, cookie, msg):
588588
Pending.remove(cookie)
589589

590590
return action, data
591+
592+
@property
593+
def digestable(self):
594+
"""Return whether the list supports digest mode.
595+
596+
This is the inverse of nondigestable.
597+
"""
598+
return not self.__mlist.nondigestable

0 commit comments

Comments
 (0)