This commit assembles a dictionary mapping user-specified IMAP keywords
to Maildir lower-case flags, similar to Dovecot's format
http://wiki2.dovecot.org/MailboxFormat/Maildir

Configuration example:

[Repository Local]
type = Maildir
localfolders = ~/Maildir/
customflag_a = $label1
customflag_b = $Forwarded
customflag_c = Junk

Signed-off-by: Igor Almeida <[email protected]>
---
 offlineimap/repository/Base.py    |  3 +++
 offlineimap/repository/Maildir.py | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/offlineimap/repository/Base.py b/offlineimap/repository/Base.py
index adae16d..8634628 100644
--- a/offlineimap/repository/Base.py
+++ b/offlineimap/repository/Base.py
@@ -133,6 +133,9 @@ class BaseRepository(CustomConfig.ConfigHelperMixin, 
object):
     def getsep(self):
         raise NotImplementedError
 
+    def getkeywordmap(self):
+        raise NotImplementedError
+
     def should_sync_folder(self, fname):
         """Should this folder be synced?"""
 
diff --git a/offlineimap/repository/Maildir.py 
b/offlineimap/repository/Maildir.py
index 0262ba2..fef57f3 100644
--- a/offlineimap/repository/Maildir.py
+++ b/offlineimap/repository/Maildir.py
@@ -39,6 +39,14 @@ class MaildirRepository(BaseRepository):
         if not os.path.isdir(self.root):
             os.mkdir(self.root, 0o700)
 
+        # Create the keyword->char mapping
+        self.keyword2char = dict()
+        for c in 'abcdefghijklmnopqrstuvwxyz':
+            confkey = 'customflag_' + c
+            keyword = self.getconf(confkey, None)
+            if keyword is not None:
+                self.keyword2char[keyword] = c
+
     def _append_folder_atimes(self, foldername):
         """Store the atimes of a folder's new|cur in self.folder_atimes"""
 
@@ -72,6 +80,9 @@ class MaildirRepository(BaseRepository):
     def getsep(self):
         return self.getconf('sep', '.').strip()
 
+    def getkeywordmap(self):
+        return self.keyword2char
+
     def makefolder(self, foldername):
         """Create new Maildir folder if necessary
 
-- 
2.5.3


_______________________________________________
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

Reply via email to