[Spambayes-checkins] spambayes/Outlook2000 msgstore.py,1.20,1.21
Mark Hammond
mhammond@users.sourceforge.net
Mon Nov 4 00:41:10 2002
Update of /cvsroot/spambayes/spambayes/Outlook2000
In directory usw-pr-cvs1:/tmp/cvs-serv26387
Modified Files:
msgstore.py
Log Message:
Allow an Outlook folder to be passed as a "folder id" (in the same way
we did that for messages).
Give __eq__ and __ne__ methods to compare folders. I'm pretty sure the
MAPI semantics are correct, but not as confident on the new rich
comparisons <wink>.
Index: msgstore.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/msgstore.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** msgstore.py 3 Nov 2002 02:00:31 -0000 1.20
--- msgstore.py 4 Nov 2002 00:41:08 -0000 1.21
***************
*** 198,202 ****
def GetFolder(self, folder_id):
# Return a single folder given the ID.
! folder_id = self.NormalizeID(folder_id)
folder = self._OpenEntry(folder_id)
table = folder.GetContentsTable(0)
--- 198,207 ----
def GetFolder(self, folder_id):
# Return a single folder given the ID.
! if hasattr(folder_id, "EntryID"):
! # An Outlook object
! folder_id = mapi.BinFromHex(folder_id.StoreID), \
! mapi.BinFromHex(folder_id.EntryID)
! else:
! folder_id = self.NormalizeID(folder_id)
folder = self._OpenEntry(folder_id)
table = folder.GetContentsTable(0)
***************
*** 248,251 ****
--- 253,265 ----
mapi.HexFromBin(self.id[1]))
+ def __eq__(self, other):
+ if other is None: return False
+ ceid = self.msgstore.session.CompareEntryIDs
+ return ceid(self.id[0], other.id[0]) and \
+ ceid(self.id[1], other.id[1])
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
def GetID(self):
return mapi.HexFromBin(self.id[0]), mapi.HexFromBin(self.id[1])
***************
*** 298,301 ****
--- 312,324 ----
mapi.HexFromBin(self.id[1]))
+ def __eq__(self, other):
+ if other is None: return False
+ ceid = self.msgstore.session.CompareEntryIDs
+ return ceid(self.id[0], other.id[0]) and \
+ ceid(self.id[1], other.id[1])
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
def GetID(self):
return mapi.HexFromBin(self.id[0]), mapi.HexFromBin(self.id[1])
***************
*** 303,307 ****
def GetOutlookItem(self):
hex_item_id = mapi.HexFromBin(self.id[1])
! store_hex_id = mapi.HexFromBin(self.id[0])
return self.msgstore.outlook.Session.GetItemFromID(hex_item_id, hex_store_id)
--- 326,330 ----
def GetOutlookItem(self):
hex_item_id = mapi.HexFromBin(self.id[1])
! hex_store_id = mapi.HexFromBin(self.id[0])
return self.msgstore.outlook.Session.GetItemFromID(hex_item_id, hex_store_id)