[Spambayes-checkins]
spambayes/Outlook2000 addin.py,1.48,1.49 filter.py,1.16,1.17
manager.py,1.46,1.47 msgstore.py,1.39,1.40
Mark Hammond
mhammond at users.sourceforge.net
Thu Feb 13 17:24:24 EST 2003
Update of /cvsroot/spambayes/spambayes/Outlook2000
In directory sc8-pr-cvs1:/tmp/cvs-serv7553
Modified Files:
addin.py filter.py manager.py msgstore.py
Log Message:
Handle exceptions when opening folders better. GetFolder() now returns
None, rather than forcing each caller to check for obscure COM errors.
Index: addin.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/addin.py,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** addin.py 4 Feb 2003 06:17:32 -0000 1.48
--- addin.py 14 Feb 2003 01:24:20 -0000 1.49
***************
*** 546,550 ****
mapi_folder = self.manager.message_store.GetFolder(outlook_folder)
look_id = self.manager.config.filter.spam_folder_id
! if look_id:
look_folder = self.manager.message_store.GetFolder(look_id)
if mapi_folder == look_folder:
--- 546,550 ----
mapi_folder = self.manager.message_store.GetFolder(outlook_folder)
look_id = self.manager.config.filter.spam_folder_id
! if mapi_folder is not None and look_id:
look_folder = self.manager.message_store.GetFolder(look_id)
if mapi_folder == look_folder:
***************
*** 554,558 ****
# Check if uncertain
look_id = self.manager.config.filter.unsure_folder_id
! if look_id:
look_folder = self.manager.message_store.GetFolder(look_id)
if mapi_folder == look_folder:
--- 554,558 ----
# Check if uncertain
look_id = self.manager.config.filter.unsure_folder_id
! if mapi_folder is not None and look_id:
look_folder = self.manager.message_store.GetFolder(look_id)
if mapi_folder == look_folder:
Index: filter.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/filter.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** filter.py 4 Feb 2003 06:17:32 -0000 1.16
--- filter.py 14 Feb 2003 01:24:21 -0000 1.17
***************
*** 39,46 ****
elif action.startswith("co"): # copied
dest_folder = mgr.message_store.GetFolder(folder_id)
! msg.CopyTo(dest_folder)
elif action.startswith("mo"): # Moved
dest_folder = mgr.message_store.GetFolder(folder_id)
! msg.MoveTo(dest_folder)
else:
raise RuntimeError, "Eeek - bad action '%r'" % (action,)
--- 39,54 ----
elif action.startswith("co"): # copied
dest_folder = mgr.message_store.GetFolder(folder_id)
! if dest_folder is None:
! print "ERROR: Unable to open the folder to Copy the " \
! "message - this message was not copied"
! else:
! msg.CopyTo(dest_folder)
elif action.startswith("mo"): # Moved
dest_folder = mgr.message_store.GetFolder(folder_id)
! if dest_folder is None:
! print "ERROR: Unable to open the folder to Move the " \
! "message - this message was not moved"
! else:
! msg.MoveTo(dest_folder)
else:
raise RuntimeError, "Eeek - bad action '%r'" % (action,)
Index: manager.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/manager.py,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** manager.py 12 Feb 2003 22:05:33 -0000 1.46
--- manager.py 14 Feb 2003 01:24:21 -0000 1.47
***************
*** 172,179 ****
names = []
for eid in folder_ids:
! try:
! name = self.message_store.GetFolder(eid).name
! except pythoncom.com_error:
name = "<unknown folder>"
names.append(name)
ret = '; '.join(names)
--- 172,180 ----
names = []
for eid in folder_ids:
! folder = self.message_store.GetFolder(eid)
! if folder is None:
name = "<unknown folder>"
+ else:
+ name = folder.name
names.append(name)
ret = '; '.join(names)
***************
*** 197,200 ****
--- 198,206 ----
assert self.outlook is not None, "I need outlook :("
msgstore_folder = self.message_store.GetFolder(folder_id)
+ if msgstore_folder is None:
+ print "Checking a folder for our field failed - "\
+ "there is no such folder."
+ return
+
folder = msgstore_folder.GetOutlookItem()
if self.verbose > 1:
Index: msgstore.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/msgstore.py,v
retrieving revision 1.39
retrieving revision 1.40
diff -C2 -d -r1.39 -r1.40
*** msgstore.py 4 Feb 2003 06:17:32 -0000 1.39
--- msgstore.py 14 Feb 2003 01:24:21 -0000 1.40
***************
*** 205,210 ****
for folder_id in folder_ids:
folder_id = self.NormalizeID(folder_id)
! folder = self._OpenEntry(folder_id)
! table = folder.GetContentsTable(0)
rc, props = folder.GetProps( (PR_DISPLAY_NAME_A,), 0)
yield MAPIMsgStoreFolder(self, folder_id, props[0][1],
--- 205,219 ----
for folder_id in folder_ids:
folder_id = self.NormalizeID(folder_id)
! try:
! folder = self._OpenEntry(folder_id)
! table = folder.GetContentsTable(0)
! except pythoncom.com_error, (hr, msg, exc, arg_err):
! # We will ignore *all* such errors for the time
! # being, but warn for results we don't know about.
! if hr not in [mapi.MAPI_E_OBJECT_DELETED, mapi.MAPI_E_NOT_FOUND]:
! print "WARNING: Unexpected MAPI error opening folder"
! print "Error:", mapiutil.GetScodeString(hr)
! print "Exception Message:", msg
! continue
rc, props = folder.GetProps( (PR_DISPLAY_NAME_A,), 0)
yield MAPIMsgStoreFolder(self, folder_id, props[0][1],
***************
*** 222,227 ****
else:
folder_id = self.NormalizeID(folder_id)
! folder = self._OpenEntry(folder_id)
! table = folder.GetContentsTable(0)
# Ensure we have a long-term ID.
rc, props = folder.GetProps( (PR_ENTRYID, PR_DISPLAY_NAME_A), 0)
--- 231,245 ----
else:
folder_id = self.NormalizeID(folder_id)
! try:
! folder = self._OpenEntry(folder_id)
! table = folder.GetContentsTable(0)
! except pythoncom.com_error, (hr, msg, exc, arg_err):
! # We will ignore *all* such errors for the time
! # being, but warn for results we don't know about.
! if hr not in [mapi.MAPI_E_OBJECT_DELETED, mapi.MAPI_E_NOT_FOUND]:
! print "WARNING: Unexpected MAPI error opening folder"
! print "Error:", mapiutil.GetScodeString(hr)
! print "Exception Message:", msg
! return None
# Ensure we have a long-term ID.
rc, props = folder.GetProps( (PR_ENTRYID, PR_DISPLAY_NAME_A), 0)
More information about the Spambayes-checkins
mailing list