A Python port of the Invisible Internet Project (I2P)
at main 32 lines 812 B view raw
1"""Mail folder management. 2 3Manages collections of messages in named folders 4(Inbox, Sent, Drafts, Trash). 5 6Ported from i2p.susi.webmail.WebMail folder handling. 7""" 8 9from __future__ import annotations 10 11from dataclasses import dataclass, field 12 13from i2p_apps.susimail.message import MailMessage 14 15 16@dataclass 17class MailFolder: 18 """A named folder containing email messages.""" 19 name: str 20 messages: list[MailMessage] = field(default_factory=list) 21 22 def add(self, message: MailMessage) -> None: 23 """Add a message to this folder.""" 24 self.messages.append(message) 25 26 def delete(self, index: int) -> None: 27 """Delete a message by index.""" 28 del self.messages[index] 29 30 @property 31 def unread_count(self) -> int: 32 return sum(1 for m in self.messages if not m.read)