changed structure in cybertools/agent/crawl/outlook.py

according to loops/agent/crawl/filesystem.py
adaptations and changes in winapi.py
(Added Mail class and Items in Outlook Folder)
placed comments in proper lines of winapi what next has to be found out about Outlook Mail Objects
Doctests are ok, but iterating over loadMailsFromFolder in outlook.py has a problem with NoneType and therefor does not work yet

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2522 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
scrat 2008-04-12 16:29:12 +00:00
parent d45477df93
commit 49860fe1ce
3 changed files with 15 additions and 5 deletions

View file

@ -41,6 +41,7 @@ from cybertools.agent.crawl.mail import MailCrawler
from cybertools.agent.crawl.mail import MailResource from cybertools.agent.crawl.mail import MailResource
from cybertools.agent.components import agents from cybertools.agent.components import agents
from cybertools.agent.system.windows import api from cybertools.agent.system.windows import api
from cybertools.agent.util.task import coiterate
# some constants # some constants
COMMASPACE = ', ' COMMASPACE = ', '
@ -53,16 +54,20 @@ class OutlookCrawler(MailCrawler):
pattern = "" pattern = ""
def collect(self, filter=None): def collect(self, filter=None):
self.collected = []
self.d = defer.Deferred() self.d = defer.Deferred()
self.oOutlookApp = None self.oOutlookApp = None
if self.findOutlook(): if self.findOutlook():
self.fetchCriteria() self.fetchCriteria()
self.d.addCallback(self.crawlFolders) coiterate(self.crawlFolders()).addCallback(self.finished)
else: else:
pass pass
#self.d.addErrback([]) #self.d.addErrback([])
return self.d return self.d
def finished(self, result):
self.d.callback(self.result)
def fetchCriteria(self): def fetchCriteria(self):
criteria = self.params criteria = self.params
self.keys = criteria.get('keys') self.keys = criteria.get('keys')
@ -91,7 +96,6 @@ class OutlookCrawler(MailCrawler):
# get specified MAPI-subfolder object and load its emails # get specified MAPI-subfolder object and load its emails
if self.pattern.match(getattr(lInboxSubfolders.Item(of + 1), 'Name')): if self.pattern.match(getattr(lInboxSubfolders.Item(of + 1), 'Name')):
self.loadMailsFromFolder(lInboxSubfolders.Item(of + 1)) self.loadMailsFromFolder(lInboxSubfolders.Item(of + 1))
return self.result
def loadMailsFromFolder(self, folder): def loadMailsFromFolder(self, folder):
# get items of the folder # get items of the folder
@ -111,6 +115,8 @@ class OutlookCrawler(MailCrawler):
msg = self.createEmailMime(record) msg = self.createEmailMime(record)
# Create a resource and append it to the result list # Create a resource and append it to the result list
self.createResource(msg, folder, "Microsoft Office Outlook") self.createResource(msg, folder, "Microsoft Office Outlook")
#return self.result
yield None
def login(self): def login(self):
pass pass

View file

@ -43,3 +43,6 @@ the twisted reactor first.
>>> from cybertools.agent.tests import tester >>> from cybertools.agent.tests import tester
>>> tester.iterate() >>> tester.iterate()
Outlook.Application retrieved Outlook.Application retrieved
Namespace MAPI retrieved
retrieving Outlook default folder
collecting Mails from folder

View file

@ -46,9 +46,10 @@ class OutlookFolder(object):
Folders = None Folders = None
def __init__(self): def __init__(self):
Items[0] = Mail() print "collecting Mails from folder"
Items[1] = Mail() self.Items[0] = Mail()
pass self.Items[1] = Mail()
self.Items[2] = Mail()
class OutlookNamespace(object): class OutlookNamespace(object):