ó
‚•oTc           @   s‚   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z e d e e e d „ Z d „  Z	 d „  Z
 d d „ Z d d „ Z d S(   iÿÿÿÿNc      
   C   sç  t  j } | j ƒ  } | j j d d ƒ }	 |	 j d ƒ d }
 d } |	 j d ƒ } | d k ro |	 | d } n  |
 d k rãt j j	 |  d	 ƒ } t
 | d
 ƒ j | ƒ t j j	 |  d ƒ } t j j	 |  d ƒ } | j d d ƒ } | rõ d | } n  d t | ƒ } | rd } n d } | t k r/d } n$ y d t t ƒ } Wn d } n Xt j d | | | | | | | | f ƒ } t | pŠ| ƒ o”| } | rµt
 | d ƒ j ƒ  } n  g  } x¨ t
 | d ƒ j ƒ  j ƒ  D]‹ } | j d ƒ d k s| r×| j d ƒ d k r×d } x3 | pg  D]% } | j | ƒ d k r d } Pq q W| sb| j | ƒ qbq×q×W| rªt d j	 | ƒ | ƒ | _ | j j d ƒ r¦| j d =n  d  S| r¬d d l m } d d g } x. | D]& } | j d | d | j ƒ  ƒ } qÓW| rd | } | | } n  t j | ƒ } y | | ƒ } Wq¬t j ƒ  } t j d | ƒ d j	 | j ƒ  ƒ } t | | d ƒ | _ | j j d ƒ r¤| j d =n  d  SXn  | rã| g | _ | j j d ƒ rà| j d =qàqãn  d  S(    Ns   Content-Typet    t   ;i    s   charset=iÿÿÿÿi   s	   text/htmls	   page.htmlt   wbs   tidy.outs   tidy.errt   -s    -xmls    -indents	    -wrap %ds   "%s" %s%s%s%s -f %s -o %s %st   rbt   Errort   Warningi   s   <br />s   Content-Length(   t   parset   nbspt   quott   &s#   <?xml version="1.0" encoding="%s"?>t   filet   XML(   R    s    -xml(   t   cherrypyt   responset   collapse_bodyt   headerst   gett   splitt   findt   ost   patht   joint   opent   writet   replacet   boolt   Falset   intt   tidyWrapt   systemt   readt
   splitlinest   appendt   wrong_contentt   bodyt   has_keyt   elementtree.ElementTreeR   t   uppert   StringIOt	   tracebackt	   print_exct   getvalue(   t   temp_dirt	   tidy_patht
   strict_xmlt   errors_to_ignoret   indentt   wrapt   warningsR   t	   orig_bodyt   fctt   ctt   encodingt   it	   page_filet   out_filet   err_filet   tidy_enct   resultt
   use_outputt   outputt   new_errst   errt   ignoret   err_ignR   t   tag_listt   tagt   enctagt   ft   treet	   body_file(    (    s%   /var/www/SABnzbd/cherrypy/lib/tidy.pyt   tidy
   sŽ    			
	"$
c         C   s%   t  j |  ƒ j d d ƒ j d d ƒ S(   Ns   	s       t    s   &nbsp;(   t   cgit   escapeR   (   t   text(    (    s%   /var/www/SABnzbd/cherrypy/lib/tidy.pyt
   html_spacev   s    c         C   s   t  j |  ƒ j d d ƒ S(   Ns   
s   <br />(   RJ   RK   R   (   RL   (    (    s%   /var/www/SABnzbd/cherrypy/lib/tidy.pyt
   html_breakz   s    t   HTMLc         C   sj   d | t  |  ƒ f g } xA t | j ƒ  ƒ D]- \ } } | j d | d t | ƒ f ƒ q, Wd j | ƒ S(   Ns   Wrong %s:<br />%s<br />s	   %03d - %si   s   <br />(   RN   t	   enumerateR    R!   RM   R   (   t   headerR#   t   content_typeR=   R6   t   line(    (    s%   /var/www/SABnzbd/cherrypy/lib/tidy.pyR"   ~   s    %c         C   s"  t  j } | j ƒ  } | j j d d ƒ } | j d ƒ d } d } | j d ƒ }	 |	 d k ro | |	 d } n  | d k rxa t rÞ | j d	 ƒ }	 |	 d k r£ Pn  | j d
 |	 ƒ }
 |
 d k rÅ Pn  | |	  | |
 d } q~ Wt j	 j
 |  d ƒ } t | d ƒ j | ƒ t j	 j
 |  d ƒ } d | | | | f } | j d d ƒ } t j | ƒ t | d ƒ j ƒ  } g  } xf | j ƒ  D]X } t } x3 | p”g  D]% } | j | ƒ d k r•t } Pq•q•W| s|| j | ƒ q|q|W| rt d j
 | ƒ | ƒ | _ | j j d ƒ r| j d =qqn  d  S(   Ns   Content-TypeR    R   i    s   charset=iÿÿÿÿi   s	   text/htmls   <scripts	   </script>i	   s	   page.htmlR   s
   nsgmls.errs   %s -c%s -f%s -s -E10 %ss   \t   /R   s   <br />s   Content-Length(   R   R   R   R   R   R   R   t   TrueR   R   R   R   R   R   R   R   R    R   R!   R"   R#   R$   (   R+   t   nsgmls_patht   catalog_pathR.   R   R2   R3   R4   R5   R6   t   jR7   R9   t   commandt   errsR>   R?   R@   RA   (    (    s%   /var/www/SABnzbd/cherrypy/lib/tidy.pyt   nsgmls…   sL    		(   RJ   R   R'   R(   R   R   t   NoneRU   RH   RM   RN   R"   R[   (    (    (    s%   /var/www/SABnzbd/cherrypy/lib/tidy.pyt   <module>   s   k		