[Spambayes-checkins] spambayes/Outlook2000 addin.py,1.22,1.23 manager.py,1.30,1.31 msgstore.py,1.15,1.16

Mark Hammond mhammond@users.sourceforge.net
Fri Nov 1 14:35:10 2002


Update of /cvsroot/spambayes/spambayes/Outlook2000
In directory usw-pr-cvs1:/tmp/cvs-serv14364

Modified Files:
	addin.py manager.py msgstore.py 
Log Message:
Fix a problem with the (store_id, item_id) change, and remove the
confusing GetOutlookItemID concept - just get the item!


Index: addin.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/addin.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** addin.py	1 Nov 2002 05:47:59 -0000	1.22
--- addin.py	1 Nov 2002 14:35:05 -0000	1.23
***************
*** 305,312 ****
          for msgstore_folder in self.manager.message_store.GetFolderGenerator(
                      folder_ids, include_sub):
!             eid = msgstore_folder.GetOutlookEntryID()
!             existing = self.folder_hooks.get(eid)
              if existing is None or existing.__class__ != HandlerClass:
!                 folder = self.application.Session.GetFolderFromID(*eid)
                  name = folder.Name.encode("mbcs", "replace")
                  try:
--- 305,311 ----
          for msgstore_folder in self.manager.message_store.GetFolderGenerator(
                      folder_ids, include_sub):
!             existing = self.folder_hooks.get(msgstore_folder.id)
              if existing is None or existing.__class__ != HandlerClass:
!                 folder = msgstore_folder.GetOutlookItem()
                  name = folder.Name.encode("mbcs", "replace")
                  try:
***************
*** 317,325 ****
                  if new_hook is not None:
                      new_hook.Init(folder, self.application, self.manager)
!                     new_hooks[eid] = new_hook
!                     self.manager.EnsureOutlookFieldsForFolder(eid)
                      print "AntiSpam: Watching for new messages in folder", name
              else:
!                 new_hooks[eid] = existing
          return new_hooks
  
--- 316,324 ----
                  if new_hook is not None:
                      new_hook.Init(folder, self.application, self.manager)
!                     new_hooks[msgstore_folder.id] = new_hook
!                     self.manager.EnsureOutlookFieldsForFolder(msgstore_folder.GetID())
                      print "AntiSpam: Watching for new messages in folder", name
              else:
!                 new_hooks[msgstore_folder.id] = existing
          return new_hooks
  

Index: manager.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/manager.py,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** manager.py	1 Nov 2002 06:09:06 -0000	1.30
--- manager.py	1 Nov 2002 14:35:05 -0000	1.31
***************
*** 92,96 ****
          assert self.outlook is not None, "I need outlook :("
          ol = self.outlook
!         folder = ol.Session.GetFolderFromID(*folder_id)
          if self.verbose > 1:
              print "Checking folder '%s' for our field '%s'" \
--- 92,97 ----
          assert self.outlook is not None, "I need outlook :("
          ol = self.outlook
!         msgstore_folder = self.message_store.GetFolder(folder_id)
!         folder = msgstore_folder.GetOutlookItem()
          if self.verbose > 1:
              print "Checking folder '%s' for our field '%s'" \

Index: msgstore.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/msgstore.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** msgstore.py	1 Nov 2002 05:47:59 -0000	1.15
--- msgstore.py	1 Nov 2002 14:35:06 -0000	1.16
***************
*** 219,230 ****
          return  MAPIMsgStoreMsg(self, folder, message_id, searchkey, unread)
  
- ##    # Currently no need for this
- ##    def GetOutlookObjectFromID(self, eid):
- ##        if self.outlook is None:
- ##            from win32com.client import Dispatch
- ##            self.outlook = Dispatch("Outlook.Application")
- ##        return self.outlook.Session.GetItemFromID(mapi.HexFromBin(eid))
- 
- 
  _MapiTypeMap = {
      type(0.0): PT_DOUBLE,
--- 219,222 ----
***************
*** 250,260 ****
                                                  mapi.HexFromBin(self.id[1]))
  
!     def GetOutlookEntryID(self):
!         # Return EntryID, StoreID - we use this order as it is the same as
!         # Session.GetItemFromID() uses - thus:
!         # ids = me.GetOutlookEntryID()
!         # session.GetItemFromID(*ids)
!         # should work.
!         return mapi.HexFromBin(self.id[1]), mapi.HexFromBin(self.id[0])
  
      def GetMessageGenerator(self):
--- 242,252 ----
                                                  mapi.HexFromBin(self.id[1]))
  
!     def GetID(self):
!         return mapi.HexFromBin(self.id[0]), mapi.HexFromBin(self.id[1])
! 
!     def GetOutlookItem(self):
!         hex_item_id = mapi.HexFromBin(self.id[1])
!         hex_store_id = mapi.HexFromBin(self.id[0])
!         return self.msgstore.outlook.Session.GetFolderFromID(hex_item_id, hex_store_id)
  
      def GetMessageGenerator(self):
***************
*** 300,310 ****
                                       mapi.HexFromBin(self.id[1]))
  
!     def GetOutlookEntryID(self):
!         # Return EntryID, StoreID - we use this order as it is the same as
!         # Session.GetItemFromID() uses - thus:
!         # ids = me.GetOutlookEntryID()
!         # session.GetItemFromID(*ids)
!         # should work.
!         return mapi.HexFromBin(self.id[1]), mapi.HexFromBin(self.id[0])
  
      def _GetPropFromStream(self, prop_id):
--- 292,302 ----
                                       mapi.HexFromBin(self.id[1]))
  
!     def GetID(self):
!         return mapi.HexFromBin(self.id[0]), mapi.HexFromBin(self.id[1])
! 
!     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)
  
      def _GetPropFromStream(self, prop_id):