ó
:ü½cc           @   sí   d  Z  d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d d l
 m Z y e e f Wn e k
 r§ d Z d	 Z n Xd
 „  Z d e j f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d S(   s   Extend mailbox.UnixMailbox.
iÿÿÿÿN(   t   Parser(   t   MessageParseError(   t   mm_cfg(   t	   Generator(   t   Messagei   i    c         C   s-   y t  j |  t ƒ SWn t k
 r( d SXd  S(   Nt    (   t   emailt   message_from_fileR   R   (   t   fp(    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyt   _safeparser(   s    t   Mailboxc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   t  j j |  | t ƒ d  S(   N(   t   mailboxt   PortableUnixMailboxt   __init__R	   (   t   selfR   (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyR   2   s    c         C   s˜   y |  j  j d d ƒ Wn t k
 r, } n, X|  j  j d ƒ d k rX |  j  j d ƒ n  |  j  j d d ƒ t |  j  ƒ } | j | d t ƒ|  j  Jd  S(   Niÿÿÿÿi   i   s   
i    t   unixfrom(   R   t   seekt   IOErrort   readt   writeR   t   flattent   True(   R   t   msgt   et   g(    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyt   AppendMessage6   s    (   t   __name__t
   __module__R   R   (    (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyR
   1   s   	c         C   s   |  d „ } | S(   Nc         S   s)   t  |  ƒ } | d k r | S| j | ƒ S(   NR   (   R	   t   scrub(   R   R   R   (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyt   scrubberV   s    (    (   R   R   (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyt   _archfactoryP   s    t   ArchiverMailboxc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sa   t  j r/ t t  j ƒ t j t  j j |  _ n	 d  |  _ | |  _ t	 j
 j |  | t |  ƒ ƒ d  S(   N(   R   t   ARCHIVE_SCRUBBERt
   __import__t   syst   modulest   processt	   _scrubbert   Nonet   _mlistR   R   R   R   (   R   R   t   mlist(    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyR   c   s    			c         C   s$   |  j  r |  j  |  j | ƒ S| Sd  S(   N(   R%   R'   (   R   R   (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyR   l   s    	c         C   s%   | r t  |  _ n t |  ƒ |  _ d S(   s|    This method allows the archiver to skip over messages without
        scrubbing attachments into the attachments directory.N(   R	   t   factoryR   (   R   t   flag(    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyt   skippingr   s    (   R   R   R   R   R+   (    (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyR   ^   s   			(   t   __doc__R"   R   R   t   email.ParserR    t   email.ErrorsR   t   MailmanR   t   Mailman.MessageR   R   R   t   Falset	   NameErrorR	   R   R
   R   R   (    (    (    s.   /export/web/mailman/mailman/Mailman/Mailbox.pyt   <module>   s"   
			