ó
Gü½cc           @   sß   d  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	 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 d Z d Z n Xd „  Z d d „ Z d S(   s?   Decorate a message by sticking the header and footer around it.iÿÿÿÿN(   t   ListType(   t   MIMEText(   t   mm_cfg(   t   Utils(   t   Errors(   t   Message(   t   _(   t   SafeDict(   t   syslogi   i    c         C   s	  | j  d ƒ s | j  d ƒ r" d  Si  } | j  d ƒ rS| j  d ƒ } t | ƒ t k rj t | ƒ d k sp t ‚ | d j ƒ  } | | d <y¯ |  j | ƒ | d <|  j | ƒ | d	 <|  j | ƒ | d
 <|  j	 | ƒ pØ d  } y  | j t j | d
 ƒ ƒ } Wn t t f k
 r| } n X| | d <|  j | ƒ | d <WqSt j k
 rOqSXn  | j | j  d i  ƒ ƒ t |  |  j d | ƒ } t |  |  j d | ƒ } | r®| r®d  S| j ƒ  p½d }	 t j |  j ƒ }
 | j ƒ  } t } | j ƒ  r°| d k r°t | t ƒ r| } n t | |
 d ƒ } t | t ƒ r?| } n t | |
 d ƒ } yBt | j d t ƒ |	 ƒ } d } } | r˜| j d ƒ r˜d } n  | r·| j d ƒ r·d } n  | | | | | } y | j |
 ƒ } |
 } Wn5 t k
 r|
 |	 k r| j |	 ƒ } |	 } qn X| j  d ƒ } | j  d ƒ } | d =| d =| j! | | ƒ | rs| j" d | ƒ n  | rŒ| j" d | ƒ n  t# } Wqft$ t f k
 r¬qfXn¶ | j ƒ  d k rf| j ƒ  } t | t ƒ sé| g } n  | rt% | d |
 ƒ } d | d  <| j& | ƒ n  | rPt% | d |
 ƒ } d | d  <| j' d | ƒ n  | j! | ƒ t# } n  | spd  St( ƒ  } t# } xB | j) ƒ  D]4 \ } } | j ƒ  j* d! ƒ rŒ| | | <t } qŒqŒW| j! | j ƒ  ƒ | j+ | j, ƒ  ƒ | j- | _- | j. | _. | j/ | j0 ƒ  ƒ | s.| j ƒ  | d" <n  | d# d  k rKd$ | d% <n  t1 | d& ƒ ri| j2 | _2 n  | g } | r§t% | d |
 ƒ } d | d  <| j' d | ƒ n  | rÙt% | d |
 ƒ } d | d  <| j& | ƒ n  | j! | ƒ | d =| d =| d' =d | d" <d  S((   Nt   isdigestt
   nodecoratet   personalizet   recipsi   i    t   user_addresst   user_delivered_tot   user_passwordt   user_languaget	   user_namet   user_optionsurls   decoration-datas   non-digest headers   non-digest footers   us-asciis
   text/plaint   ignoret   decodeu    s   
u   
t   formatt   delsps   content-transfer-encodings   content-typet   Formatt   DelSps   multipart/mixedt   plaint   inlines   Content-Dispositions   content-s   Content-Types   mime-versions   1.0s   MIME-Versiont   __version__s   content-disposition(3   t   gett   typeR    t   lent   AssertionErrort   lowert   getMemberCPAddresst   getMemberPasswordt   getMemberLanguaget   getMemberNamet   Nonet   encodeR   t
   GetCharSett   AttributeErrort   UnicodeErrort   GetOptionsURLR   t   NotAMemberErrort   updatet   decoratet
   msg_headert
   msg_footert   get_content_charsett   preferred_languaget   get_content_typet   Truet   is_multipartt
   isinstancet   unicodet   get_payloadt   endswitht	   get_paramt   set_payloadt	   set_paramt   Falset   LookupErrorR   t   appendt   insertR   t   itemst
   startswitht   set_unixfromt   get_unixfromt   preamblet   epiloguet   set_default_typet   get_default_typet   hasattrR   (   t   mlistt   msgt   msgdatat   dR   t   membert   usernamet   headert   footert   mcsett   lcsett   msgtypet   wrapt   uheadert   ufootert
   oldpayloadt   frontsept   endsept   payloadt   newcsetR   R   t   mimeftrt   mimehdrt   innert   copiedt   ht   v(    (    s8   /export/web/mailman/mailman/Mailman/Handlers/Decorate.pyt   process)   sÞ    *
 

		
		



		
	

c         C   sH  t  t j d d | ƒ ƒ d k r% d St i |  j d 6|  j ƒ  d 6|  j ƒ  d 6|  j d 6|  j d 6|  j d	 6|  j	 d
 6t
 j d 6ƒ } | d  k	 r£ | j | ƒ n  t |  d d ƒ rÇ t j | ƒ } n  y, t j d d t j d d | | ƒ ƒ } Wn2 t t f k
 r'} t d d | | ƒ | } n X| j d ƒ sD| d 7} n  | S(   Ns   \st    i    t	   real_namet	   list_namet   _internal_namet	   host_namet   web_page_urlt   descriptiont   infot   cgiextt   use_dollar_stringss   (?m)(?<!^--) +(?=\n)s   \r\ns   \nt   errors"   Exception while calculating %s:
%ss   
(   R   t   ret   subR   Rd   t   internal_nameRg   Rh   Ri   Rj   R   t   CGIEXTR%   R,   t   getattrR   t
   to_percentt
   ValueErrort	   TypeErrorR   R8   (   RI   t   templatet   whatt	   extradictRL   t   textt   e(    (    s8   /export/web/mailman/mailman/Mailman/Handlers/Decorate.pyR-   Ó   s.    !	



 
(   t   __doc__Rn   t   typesR    t   email.MIMETextR   t   MailmanR   R   R   t   Mailman.MessageR   t   Mailman.i18nR   t   Mailman.SafeDictR   t   Mailman.Logging.SyslogR   R3   R<   Rb   R%   R-   (    (    (    s8   /export/web/mailman/mailman/Mailman/Handlers/Decorate.pyt   <module>   s"   
	ª