Ñò
ÝT~Kc           @   sn   d  Z  d d k Z d d k Z d d k Z d d k Z d d k l Z h d d 6d d 6d d	 6Z d
 „  Z d S(   sE   
Process a set of configuration defined sanitations on a given feed.
iÿÿÿÿN(   t
   feedparsers
   text/plaint   texts	   text/htmlt   htmls   application/xhtml+xmlt   xhtmlc         C   sv  x8t  i |  ƒ i ƒ  D]!} | i d ƒ d j o
 d } n | i i | ƒ o | i | =n x× | i D]Ì } | i | ƒ o | | =n | i | d ƒ o | | d =n | i | d ƒ o | | d =n xb | i ƒ  D]T } | i d ƒ p qÛ n x4 | | i	 ƒ  D]" } | | j o | | | =q	q	WqÛ Wqg Wq Wt  i
 |  ƒ oZ t  i
 |  ƒ } t i | | ƒ } x6 | i D]' } | i d ƒ o | | i d <qvqvWn t  i |  ƒ oZ t  i |  ƒ } t i | | ƒ } x6 | i D]' } | i d ƒ o | | i d <qàqàWn t  i |  ƒ o^ t  i |  ƒ } t i | | ƒ } x: | i D]+ } | i d	 ƒ o | | i d d <qJqJWn t  i |  ƒ i d
 ƒ d j o#d d k l }	 | i i d ƒ o? | i i i d ƒ o) t |	 | i i i ƒ ƒ | i i d <n x¾ | i D]¯ } | i d ƒ o6 | i i d ƒ o# t |	 | i i ƒ ƒ | i d <n | i d ƒ oS | i }
 |
 i d ƒ o6 |
 i i d ƒ o# t |	 |
 i i ƒ ƒ |
 i d <q·qqWn t  i |  ƒ i ƒ  } | d j oï t i ƒ  } | i i d ƒ o4 | i d o& | i d | j o | i d =q4n x„| i D]Š } | i d ƒ o2 | d o' | d | j o | d =| d =q†n | i d ƒ o2 | d o' | d | j o | d =| d =qÈq>q>Wnì | d j oÞ t i ƒ  } | i i d ƒ o4 | i d o& | i d | j o | i d =q0n g  } | i D]m } | i d ƒ p | d p | d | j o9 | i d ƒ p | d p | d | j o | | q>q>~ | _ n t  i |  ƒ } x¥| i | i g D]} x‡| i ƒ  D]y} | d	 j o" | i d ƒ o | i d } n" | i d ƒ o | | } n qñ| i d ƒ p qñn d
 | d j o qñn | i d ƒ p qñn | i d ƒ oï | o¿ | d j ob | i d ƒ o' | i i d ƒ o | i i | d <q_| i i d ƒ o | i i | d <q_qc| d j o% | i d ƒ o | i | d <q_qct i  | d | ƒ | d <n t i! | i" | i# d | i$ ƒ | d <n d d k% l& } l' } l( } d d k% l) } l* } | i+ d | i, d  | i- d! ƒ ƒ } | i. | i" d" d ƒ} | i/ d# t0 ƒ } | i1 d! ƒ } | i2 | | ƒ d" d ƒ} d$ i3 g  } | D] } | t | ƒ qG~ ƒ | d <qñWqÞWd  S(%   Nt   langi    t   languaget   _detailt   _parsedt   title_detailt   typet   summary_detailt   contentR   iÿÿÿÿ(   t	   stripHtmlt   author_detailt   namet   sourcet   ignore_datet   updated_parsedt   published_parsedt	   publishedt   updatedt   ignore_entryt   content_detailt   valuet   baset   feed_alternatet   linkt   entry_alternates   utf-8(   t   html5parsert	   sanitizert   treebuilders(   t   treewalkerst
   serializert	   tokenizert   treet   domt   encodingt   inject_meta_charsett    (4   t   configt   ignore_in_feedt   splitt   findt   feedt   has_keyt   entriest   keyst   endswitht   copyt
   title_typet   type_mapt   getR   t   summary_typeR
   t   content_typeR   t	   name_typet
   shell.tmplR   R   t   strR   R   t   future_datest   lowert   timet   gmtimet   xml_baseR   R    t   _urljoint   _resolveRelativeURIsR   R   R	   t   html5libR   R   R   R   R    t
   HTMLParsert   HTMLSanitizert   getTreeBuildert   parseFragmentt   XHTMLSerializert   Falset   getTreeWalkert	   serializet   join(   t   feed_urit   datat   tagt   entryt   keyt   detailR1   R4   R5   R   R   R9   t   nowt   _[1]t   scrub_xmlbaset   nodeR   R   R   R   R    t   pt   docR   t   walkerR"   t   _[2]t   token(    (    s   /net/bzr/venus/planet/scrub.pyt   scrub   sø      
 
        
 
 
 )
 #	/! 
 ! ,     #(   t   __doc__R;   t   planetR'   t   shellR    R2   RY   (    (    (    s   /net/bzr/venus/planet/scrub.pyt   <module>   s   $

