示例#1
0
    def __init__(self, root, name, sep, repository, accountname, config):
        self.name = name
        self.config = config
        self.dofsync = config.getdefaultboolean("general", "fsync", True)
        self.root = root
        self.sep = sep
        self.messagelist = None
        self.repository = repository
        self.accountname = accountname

        self.wincompatible = self.config.getdefaultboolean(
            "Account " + self.accountname, "maildir-windows-compatible", False
        )

        if self.wincompatible == False:
            self.infosep = ":"
        else:
            self.infosep = "!"

        self.flagmatchre = re.compile(self.infosep + ".*2,([A-Z]+)")

        BaseFolder.__init__(self)
        # self.ui is set in BaseFolder.init()
        # Cache the full folder path, as we use getfullname() very often
        self._fullname = os.path.join(self.getroot(), self.getname())
示例#2
0
 def __init__(self, root, name, sep, repository, accountname, config):
     self.name = name
     self.config = config
     self.dofsync = config.getdefaultboolean("general", "fsync", True)
     self.root = root
     self.sep = sep
     self.messagelist = None
     self.repository = repository
     self.accountname = accountname
     BaseFolder.__init__(self)
示例#3
0
 def __init__(self, name, sep, repository, accountname, config):
     self.name = name
     self.config = config
     self.sep = sep
     self.messagelist = None
     self.repository = repository
     self.accountname = accountname
     self.ui = UIBase.getglobalui()
     self.debug("name=%s sep=%s acct=%s" % (name, sep, accountname))
     BaseFolder.__init__(self)
示例#4
0
 def __init__(self, root, name, sep, repository, accountname, config):
     self.name = name
     self.config = config
     self.dofsync = config.getdefaultboolean("general", "fsync", True)
     self.root = root
     self.sep = sep
     self.messagelist = None
     self.repository = repository
     self.accountname = accountname
     BaseFolder.__init__(self)
示例#5
0
 def __init__(self, name, sep, repository, accountname, config):
     self.name = name
     self.config = config
     self.sep = sep
     self.messagelist = None
     self.repository = repository
     self.accountname = accountname
     self.ui = UIBase.getglobalui()
     self.debug("name=%s sep=%s acct=%s" % (name, sep, accountname))
     BaseFolder.__init__(self)
示例#6
0
 def __init__(self, imapserver, name, visiblename, accountname, repository):
     self.config = imapserver.config
     self.expunge = repository.getexpunge()
     self.name = imaputil.dequote(name)
     self.root = None  # imapserver.root
     self.sep = imapserver.delim
     self.imapserver = imapserver
     self.messagelist = None
     self.visiblename = visiblename
     self.accountname = accountname
     self.repository = repository
     self.randomgenerator = random.Random()
     BaseFolder.__init__(self)
示例#7
0
 def __init__(self, imapserver, name, visiblename, accountname, repository):
     self.config = imapserver.config
     self.expunge = repository.getexpunge()
     self.name = imaputil.dequote(name)
     self.root = None  # imapserver.root
     self.sep = imapserver.delim
     self.imapserver = imapserver
     self.messagelist = None
     self.visiblename = visiblename
     self.accountname = accountname
     self.repository = repository
     self.randomgenerator = random.Random()
     BaseFolder.__init__(self)
示例#8
0
 def __init__(self, root, name, sep, repository, accountname, config):
     self.name = name
     self.config = config
     self.dofsync = config.getdefaultboolean("general", "fsync", True)
     self.root = root
     self.sep = sep
     self.messagelist = None
     self.repository = repository
     self.accountname = accountname
     BaseFolder.__init__(self)
     #self.ui is set in BaseFolder.init()
     # Cache the full folder path, as we use getfullname() very often
     self._fullname = os.path.join(self.getroot(), self.getname())
示例#9
0
 def __init__(self, root, name, repository, accountname, config):
     self.name = name
     self.root = root
     self.sep = '.'
     self.config = config
     self.dofsync = config.getdefaultboolean("general", "fsync", True)
     self.filename = os.path.join(root, name)
     self.filename = repository.getfolderfilename(name)
     self.messagelist = None
     self.repository = repository
     self.savelock = threading.Lock()
     self.doautosave = 1
     self.accountname = accountname
     BaseFolder.__init__(self)
示例#10
0
 def __init__(self, root, name, repository, accountname, config):
     self.name = name
     self.root = root
     self.sep = '.'
     self.config = config
     self.dofsync = config.getdefaultboolean("general", "fsync", True)
     self.filename = os.path.join(root, name)
     self.filename = repository.getfolderfilename(name)
     self.messagelist = None
     self.repository = repository
     self.savelock = threading.Lock()
     self.doautosave = 1
     self.accountname = accountname
     BaseFolder.__init__(self)
示例#11
0
    def __init__(self, root, name, repository, accountname, config):
        self.name = name
        self.root = root
        self.sep = "."
        self.config = config
        self.dofsync = config.getdefaultboolean("general", "fsync", True)
        self.filename = os.path.join(root, name)
        self.filename = repository.getfolderfilename(name)
        self.messagelist = {}
        self.repository = repository
        self.savelock = threading.Lock()
        self.doautosave = 1
        self.accountname = accountname
        BaseFolder.__init__(self)
        self.dbfilename = self.filename + ".sqlite"

        # MIGRATE
        if os.path.exists(self.filename):
            self.connection = sqlite.connect(self.dbfilename)
            self.cursor = self.connection.cursor()
            self.cursor.execute("CREATE TABLE status (id INTEGER PRIMARY KEY, flags VARCHAR(50))")
            if self.isnewfolder():
                self.messagelist = {}
                return
            file = open(self.filename, "rt")
            self.messagelist = {}
            line = file.readline().strip()
            assert line == magicline
            for line in file.xreadlines():
                line = line.strip()
                uid, flags = line.split(":")
                uid = long(uid)
                flags = [x for x in flags]
                flags.sort()
                flags = "".join(flags)
                self.cursor.execute("INSERT INTO status (id,flags) VALUES (?,?)", (uid, flags))
            file.close()
            self.connection.commit()
            os.rename(self.filename, self.filename + ".old")
            self.cursor.close()
            self.connection.close()

            # create new
        if not os.path.exists(self.dbfilename):
            self.connection = sqlite.connect(self.dbfilename)
            self.cursor = self.connection.cursor()
            self.cursor.execute("CREATE TABLE status (id INTEGER PRIMARY KEY, flags VARCHAR(50))")
        else:
            self.connection = sqlite.connect(self.dbfilename)
            self.cursor = self.connection.cursor()
示例#12
0
    def __init__(self, root, name, sep, repository, accountname, config):
        self.name = name
        self.config = config
        self.dofsync = config.getdefaultboolean("general", "fsync", True)
        self.root = root
        self.sep = sep
        self.messagelist = None
        self.repository = repository
        self.accountname = accountname

        self.wincompatible = self.config.getdefaultboolean(
            "Account " + self.accountname, "maildir-windows-compatible", False)

        if self.wincompatible == False:
            self.infosep = ':'
        else:
            self.infosep = '!'

        self.flagmatchre = re.compile(self.infosep + '.*2,([A-Z]+)')

        BaseFolder.__init__(self)
        #self.ui is set in BaseFolder.init()
        # Cache the full folder path, as we use getfullname() very often
        self._fullname = os.path.join(self.getroot(), self.getname())