Index: third_party/twisted_8_1/twisted/mail/pb.py |
diff --git a/third_party/twisted_8_1/twisted/mail/pb.py b/third_party/twisted_8_1/twisted/mail/pb.py |
deleted file mode 100644 |
index dfe72d3707ee17162234046802342377f9b8e615..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/mail/pb.py |
+++ /dev/null |
@@ -1,115 +0,0 @@ |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
- |
-from twisted.spread import pb |
-from twisted.spread import banana |
- |
-import os |
-import types |
- |
-class Maildir(pb.Referenceable): |
- |
- def __init__(self, directory, rootDirectory): |
- self.virtualDirectory = directory |
- self.rootDirectory = rootDirectory |
- self.directory = os.path.join(rootDirectory, directory) |
- |
- def getFolderMessage(self, folder, name): |
- if '/' in name: |
- raise IOError("can only open files in '%s' directory'" % folder) |
- fp = open(os.path.join(self.directory, 'new', name)) |
- try: |
- return fp.read() |
- finally: |
- fp.close() |
- |
- def deleteFolderMessage(self, folder, name): |
- if '/' in name: |
- raise IOError("can only delete files in '%s' directory'" % folder) |
- os.rename(os.path.join(self.directory, folder, name), |
- os.path.join(self.rootDirectory, '.Trash', folder, name)) |
- |
- def deleteNewMessage(self, name): |
- return self.deleteFolderMessage('new', name) |
- remote_deleteNewMessage = deleteNewMessage |
- |
- def deleteCurMessage(self, name): |
- return self.deleteFolderMessage('cur', name) |
- remote_deleteCurMessage = deleteCurMessage |
- |
- def getNewMessages(self): |
- return os.listdir(os.path.join(self.directory, 'new')) |
- remote_getNewMessages = getNewMessages |
- |
- def getCurMessages(self): |
- return os.listdir(os.path.join(self.directory, 'cur')) |
- remote_getCurMessages = getCurMessages |
- |
- def getNewMessage(self, name): |
- return self.getFolderMessage('new', name) |
- remote_getNewMessage = getNewMessage |
- |
- def getCurMessage(self, name): |
- return self.getFolderMessage('cur', name) |
- remote_getCurMessage = getCurMessage |
- |
- def getSubFolder(self, name): |
- if name[0] == '.': |
- raise IOError("subfolder name cannot begin with a '.'") |
- name = name.replace('/', ':') |
- if self.virtualDirectoy == '.': |
- name = '.'+name |
- else: |
- name = self.virtualDirectory+':'+name |
- if not self._isSubFolder(name): |
- raise IOError("not a subfolder") |
- return Maildir(name, self.rootDirectory) |
- remote_getSubFolder = getSubFolder |
- |
- def _isSubFolder(self, name): |
- return (not os.path.isdir(os.path.join(self.rootDirectory, name)) or |
- not os.path.isfile(os.path.join(self.rootDirectory, name, |
- 'maildirfolder'))) |
- |
- |
-class MaildirCollection(pb.Referenceable): |
- |
- def __init__(self, root): |
- self.root = root |
- |
- def getSubFolders(self): |
- return os.listdir(self.getRoot()) |
- remote_getSubFolders = getSubFolders |
- |
- def getSubFolder(self, name): |
- if '/' in name or name[0] == '.': |
- raise IOError("invalid name") |
- return Maildir('.', os.path.join(self.getRoot(), name)) |
- remote_getSubFolder = getSubFolder |
- |
- |
-class MaildirBroker(pb.Broker): |
- |
- def proto_getCollection(self, requestID, name, domain, password): |
- collection = self._getCollection() |
- if collection is None: |
- self.sendError(requestID, "permission denied") |
- else: |
- self.sendAnswer(requestID, collection) |
- |
- def getCollection(self, name, domain, password): |
- if not self.domains.has_key(domain): |
- return |
- domain = self.domains[domain] |
- if (domain.dbm.has_key(name) and |
- domain.dbm[name] == password): |
- return MaildirCollection(domain.userDirectory(name)) |
- |
- |
-class MaildirClient(pb.Broker): |
- |
- def getCollection(self, name, domain, password, callback, errback): |
- requestID = self.newRequestID() |
- self.waitingForAnswers[requestID] = callback, errback |
- self.sendCall("getCollection", requestID, name, domain, password) |