A Python port of the Invisible Internet Project (I2P)
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)