Hi, Thanks for reviewing. Comments below
On 11/07/2015 02:52 PM, Nicolas Sebrecht wrote: > On Sat, Nov 07, 2015 at 11:16:54AM -0300, Igor Almeida wrote: > >> The keywords are in the flag string, so imaputil can just strip the >> usual \Flags. >> >> Signed-off-by: Igor Almeida <[email protected]> >> --- >> offlineimap/folder/Base.py | 5 +++++ >> offlineimap/folder/IMAP.py | 8 +++++++- >> offlineimap/imaputil.py | 8 ++++++++ >> 3 files changed, 20 insertions(+), 1 deletion(-) >> >> diff --git a/offlineimap/folder/Base.py b/offlineimap/folder/Base.py >> index d2a0706..5031a40 100644 >> --- a/offlineimap/folder/Base.py >> +++ b/offlineimap/folder/Base.py >> @@ -420,6 +420,11 @@ class BaseFolder(object): >> >> raise NotImplementedError >> >> + def getmessagekeywords(self, uid): >> + """Returns the keywords for the specified message.""" >> + >> + raise NotImplementedError >> + >> def savemessageflags(self, uid, flags): >> """Sets the specified message's flags to the given set. >> >> diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py >> index 60b5301..7f0fd6d 100644 >> --- a/offlineimap/folder/IMAP.py >> +++ b/offlineimap/folder/IMAP.py >> @@ -251,8 +251,10 @@ class IMAPFolder(BaseFolder): >> uid = long(options['UID']) >> self.messagelist[uid] = self.msglist_item_initializer(uid) >> flags = imaputil.flagsimap2maildir(options['FLAGS']) >> + keywords = imaputil.flagsimap2keywords(options['FLAGS']) >> rtime = imaplibutil.Internaldate2epoch(messagestr) >> - self.messagelist[uid] = {'uid': uid, 'flags': flags, >> 'time': rtime} >> + self.messagelist[uid] = {'uid': uid, 'flags': flags, >> 'time': rtime, >> + 'keywords': keywords} > > The IMAP server may not accept the provided keywords. > Are you talking about an IMAP -> IMAP sync? If so, that could be true for the destination server, but this patchset does not implement this use case. In my use case, IMAP -> Maildir, the flags are already there and we're just translating them to lower-case letters. > I can think of 3 cases right now: > - the server don't allow Keywords at all; > - the server only allow pre-defined Keywords; > - the server allows creating new Keywords (see PERMANTENTFLAGS). > > I guess it's fine to assume that Keywords are permanents for now, but we > have to check if the server allows creating new Keywords. Otherwise, the > server will reply with 'NO' to commands like APPEND. > > IOW, we have to honor PERMANTENTFLAGS cleanly. > -- Igor Almeida _______________________________________________ OfflineIMAP-project mailing list: [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/offlineimap-project OfflineIMAP homepages: - https://github.com/OfflineIMAP - http://offlineimap.org
