[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)