;ò
¢)?Bc           @   s‡   d  Z  d k Z d k Z d k Z d k Z d k Z d k l Z d Z d Z	 d Z
 d „  Z e d „ Z d e i i f d	 „  ƒ  YZ d S(
   s/   Extract topics from the original mail message.
N(   s   syslogs   
s    s   
	c         C   sX  |  i o d  Sn g  } | i | i d t ƒ ƒ | i | i d t ƒ ƒ |  i d j o nA |  i d j  o | i t	 | ƒ ƒ n | i t	 | |  i ƒ ƒ t
 t | ƒ } h  } xi |  i D]^ \ } } }
 } t i | t i t i Bƒ } x- | D]% }	 | i |	 ƒ o d | | <Pqó qó Wq¾ W| o- | i ƒ  | d <t i | i ƒ  ƒ | d <n d  S(   Ns   subjects   keywordsi    i   s	   topichitss   X-Topics(   s   mlists   topics_enableds
   matchliness   appends   msgs   gets   Nones   topics_bodylines_limits   extends   scanbodys   filters   hitss   topicss   names   patterns   descs	   emptyflags   res   compiles
   IGNORECASEs   VERBOSEs   cres   lines   searchs   keyss   msgdatas   NLTABs   join(   s   mlists   msgs   msgdatas	   emptyflags   names   patterns   hitss
   matchliness   cres   lines   desc(    (    s'   /var/mailman/Mailman/Handlers/Tagger.pys   process"   s.    
  
c         C   ss  t  } |  i d ƒ d j o
 |  } n] |  i ƒ  o |  i ƒ  d j o< x9 |  i ƒ  D]! } | i d ƒ d j o PqS qS Wt  } n | o g  Sn g  } d } t t	 i
 i |  ƒ ƒ } xu | t  j p
 | | j  oZ y | i d ƒ } Wn t j
 o Pn X| i ƒ  o q¹ n | d 7} | i | ƒ q¹ Wt ƒ  } | i t i | ƒ ƒ }  |  i d g  ƒ |  i d g  ƒ Sd  S(   Ns
   text/plains   multipart/alternativei    i   s   subjects   keywords(   s   Nones   founds   msgs   get_types   is_multiparts   get_payloads   liness   linenos   lists   emails	   Iteratorss   body_line_iterators   readers   numliness   pops   lines
   IndexErrors   strips   appends   _ForgivingParsers   ps   parsestrs   EMPTYSTRINGs   joins   get_all(   s   msgs   numliness   ps   liness   linenos   readers   founds   line(    (    s'   /var/mailman/Mailman/Handlers/Tagger.pys   scanbodyC   s6    
  	
 
	s   _ForgivingParserc           B   s   t  Z d „  Z RS(   Nc         C   sK  d } g  } d } xn o| i ƒ  } | o Pn | i ƒ  d } | o Pn | d 7} | i d ƒ o& | d j o | i	 | ƒ q q’ Pn | d d j o! | o Pn | i
 | ƒ q n | i d ƒ } | d j  o Pn | o t i | ƒ | | <n | |  } | | d i ƒ  g } q W| o t i | ƒ | | <n d  S(   Ns    i    i   s   From s    	s   :(   s
   lastheaders	   lastvalues   linenos   fps   readlines   lines
   splitliness
   startswiths	   containers   set_unixfroms   appends   finds   is   NLTABs   joins   lstrip(   s   selfs	   containers   fps	   lastvalues   is   linenos   lines
   lastheader(    (    s'   /var/mailman/Mailman/Handlers/Tagger.pys   _parseheaderso   s>     

(   s   __name__s
   __module__s   _parseheaders(    (    (    s'   /var/mailman/Mailman/Handlers/Tagger.pys   _ForgivingParseri   s   (   s   __doc__s   res   emails   email.Errorss   email.Iteratorss   email.Parsers   Mailman.Logging.Syslogs   syslogs   CRNLs   EMPTYSTRINGs   NLTABs   processs   Nones   scanbodys   Parsers   HeaderParsers   _ForgivingParser(	   s   syslogs   processs   _ForgivingParsers   EMPTYSTRINGs   res   CRNLs   scanbodys   emails   NLTAB(    (    s'   /var/mailman/Mailman/Handlers/Tagger.pys   ?   s   						!&