From 0e4e4aa6c5e50e17eff3b7acab25db5f83feeac9 Mon Sep 17 00:00:00 2001 From: jgoerzen Date: Wed, 19 Jun 2002 07:08:59 +0100 Subject: [PATCH] /head: changeset 8 Updated --- head/offlineimap/folder/Maildir.py | 16 ++++----- head/offlineimap/folder/__init__.py | 2 +- head/offlineimap/repository/Maildir.py | 48 +++++++++++++++++++++++++ head/offlineimap/repository/__init__.py | 2 +- 4 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 head/offlineimap/repository/Maildir.py diff --git a/head/offlineimap/folder/Maildir.py b/head/offlineimap/folder/Maildir.py index 0274055..ada77d6 100644 --- a/head/offlineimap/folder/Maildir.py +++ b/head/offlineimap/folder/Maildir.py @@ -1,4 +1,4 @@ -# IMAP folder support +# Maildir folder support # Copyright (C) 2002 John Goerzen # # @@ -19,10 +19,10 @@ from Base import BaseFolder from imapsync import imaputil -class IMAPFolder(BaseFolder): - def __init__(self, imapserver, name): - self.name = imaputil.dequote(name) - self.root = imapserver.root - self.sep = imapserver.delim - self.imapserver = imapserver - +class MaildirFolder(BaseFolder): + def __init__(self, root, name): + self.name = name + self.root = root + self.sep = '.' + + diff --git a/head/offlineimap/folder/__init__.py b/head/offlineimap/folder/__init__.py index dda8dd1..52dd3de 100644 --- a/head/offlineimap/folder/__init__.py +++ b/head/offlineimap/folder/__init__.py @@ -1 +1 @@ -import Base, IMAP +import Base, IMAP, Maildir diff --git a/head/offlineimap/repository/Maildir.py b/head/offlineimap/repository/Maildir.py new file mode 100644 index 0000000..4a9f998 --- /dev/null +++ b/head/offlineimap/repository/Maildir.py @@ -0,0 +1,48 @@ +# Maildir repository support +# Copyright (C) 2002 John Goerzen +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from Base import BaseRepository +from imapsync import folder, imaputil +from mailbox import Maildir +import os + +class MaildirRepository(BaseRepository): + def __init__(self, root): + """Initialize a MaildirRepository object. Takes a path name + to the directory holding all the Maildir directories.""" + + self.root = root + self.folders = None + + def getfolders(self): + if self.folders != None: + return self.folders + + retval = [] + for dirname in os.listdir(self.root): + fullname = os.path.join(self.root, dirname) + if not os.path.isdir(fullname): + continue + if not (os.path.isdir(os.path.join(fullname, 'cur')) and + os.path.isdir(os.path.join(fullname, 'new')) and + os.path.isdir(os.path.join(fullname, 'tmp'))): + continue + retval.append(MaildirFolder(self.root, dirname)) + self.folders = retval + return retval + diff --git a/head/offlineimap/repository/__init__.py b/head/offlineimap/repository/__init__.py index dab9055..2ed25b3 100644 --- a/head/offlineimap/repository/__init__.py +++ b/head/offlineimap/repository/__init__.py @@ -1 +1 @@ -import IMAP, Base +import IMAP, Base, Maildir