aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cloud_mdir_sync/maildir.py6
-rw-r--r--cloud_mdir_sync/messages.py5
2 files changed, 8 insertions, 3 deletions
diff --git a/cloud_mdir_sync/maildir.py b/cloud_mdir_sync/maildir.py
index fdc8a90..e1f4082 100644
--- a/cloud_mdir_sync/maildir.py
+++ b/cloud_mdir_sync/maildir.py
@@ -54,6 +54,8 @@ class MailDirMailbox(mailbox.Mailbox):
res.add("S")
if msg.flags & messages.Message.FLAG_FLAGGED:
res.add("F")
+ if msg.flags & messages.Message.FLAG_DELETED:
+ res.add("T")
return res
def _decode_msg_filename(self, fn):
@@ -71,6 +73,8 @@ class MailDirMailbox(mailbox.Mailbox):
mflags |= messages.Message.FLAG_READ
if "F" in flags:
mflags |= messages.Message.FLAG_FLAGGED
+ if "T" in flags:
+ mflags |= messages.Message.FLAG_DELETED
assert ":2," not in fn
return (fn, flags, mflags)
@@ -153,7 +157,7 @@ class MailDirMailbox(mailbox.Mailbox):
cloud_flags = self._msg_to_flags(cloudmsg)
base, mflags, _ = self._decode_msg_filename(mymsg.fn)
- nflags = (mflags - set(("R", "S", "F"))) | cloud_flags
+ nflags = (mflags - set(("R", "S", "F", "T"))) | cloud_flags
if mflags == nflags:
return
if nflags:
diff --git a/cloud_mdir_sync/messages.py b/cloud_mdir_sync/messages.py
index d87e547..b22d341 100644
--- a/cloud_mdir_sync/messages.py
+++ b/cloud_mdir_sync/messages.py
@@ -29,7 +29,7 @@ MBoxDict_Type = Dict["mailbox.Mailbox", Dict[ContentHash_Type,
"Message"]]
CHMsgDict_Type = Dict[ContentHash_Type, "Message"]
CHMsgMappingDict_Type = Dict[ContentHash_Type, Tuple[Optional["Message"],
- "Message"]]
+ Optional["Message"]]]
class Message(object):
@@ -40,7 +40,8 @@ class Message(object):
FLAG_REPLIED = 1 << 0
FLAG_READ = 1 << 1
FLAG_FLAGGED = 1 << 2
- ALL_FLAGS = FLAG_REPLIED | FLAG_READ | FLAG_FLAGGED
+ FLAG_DELETED = 1 << 3
+ ALL_FLAGS = FLAG_REPLIED | FLAG_READ | FLAG_FLAGGED | FLAG_DELETED
fn: str
def __init__(self, mailbox, storage_id, email_id=None):