[Spambayes-checkins] spambayes pop3proxy.py,1.41,1.42

Skip Montanaro montanaro at users.sourceforge.net
Fri Jan 24 20:35:42 EST 2003


Update of /cvsroot/spambayes/spambayes
In directory sc8-pr-cvs1:/tmp/cvs-serv28358

Modified Files:
	pop3proxy.py 
Log Message:
* UserInterface: add onUpload method from proxytrainer for use by proxytee
* onReview: make sure judgement is just the "spam" part of "spam; 1.00"


Index: pop3proxy.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/pop3proxy.py,v
retrieving revision 1.41
retrieving revision 1.42
diff -C2 -d -r1.41 -r1.42
*** pop3proxy.py	24 Jan 2003 22:45:09 -0000	1.41
--- pop3proxy.py	25 Jan 2003 04:35:40 -0000	1.42
***************
*** 651,654 ****
--- 651,685 ----
          self._writePostamble()
  
+     def onUpload(self, params):
+         """Save a message for later training."""
+         # Upload or paste?  Spam or ham?
+         content = params.get('file') or params.get('text')
+ 
+         # Convert platform-specific line endings into unix-style.
+         content = content.replace('\r\n', '\n').replace('\r', '\n')
+ 
+         # Single message or mbox?
+         if content.startswith('From '):
+             # Get a list of raw messages from the mbox content.
+             class SimpleMessage:
+                 def __init__(self, fp):
+                     self.guts = fp.read()
+             contentFile = StringIO.StringIO(content)
+             mbox = mailbox.PortableUnixMailbox(contentFile, SimpleMessage)
+             messages = map(lambda m: m.guts, mbox)
+         else:
+             # Just the one message.
+             messages = [content]
+ 
+         for m in messages:
+             message = state.unknownCorpus.makeMessage("%d"%self.messageName)
+             message.setSubstance(m)
+             state.unknownCorpus.addMessage(message)
+             self.messageName += 1
+ 
+         # Save the database and return a link Home and another training form.
+         self.doSave()
+         self.push("<p>OK.</p>")
+ 
      def onTrain(self, file, text, which):
          """Train on an uploaded or pasted message."""
***************
*** 884,889 ****
              cachedMessage = state.unknownCorpus[key]
              message = mboxutils.get_message(cachedMessage.getSubstance())
!             judgement = message[options.hammie_header_name] or \
!                                             options.header_unsure_string
              messageInfo = self._makeMessageInfo(message)
              keyedMessageInfo[judgement].append((key, messageInfo))
--- 915,923 ----
              cachedMessage = state.unknownCorpus[key]
              message = mboxutils.get_message(cachedMessage.getSubstance())
!             judgement = message[options.hammie_header_name]
!             if judgement is None:
!                 judgement = options.header_unsure_string
!             else:
!                 judgement = judgement.split(';')[0].strip()
              messageInfo = self._makeMessageInfo(message)
              keyedMessageInfo[judgement].append((key, messageInfo))





More information about the Spambayes-checkins mailing list