ó
‚•oTc           @   sg  d  d l  Z  d  d l m Z d  d l m Z d  d l Z e a d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z e d d „ Z d „  Z d d „ Z d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d  d l Z d Z d Z e j e e ƒ a e j e e ƒ a d „  Z d „  Z d „  Z  i d d 6d d 6Z! d „  Z" e ƒ  d S(    iÿÿÿÿN(   t   escape(   t   Filterc           C   sO   y; t  j r t a n% t j ƒ  d j ƒ  j d ƒ d k a Wn t a n Xd  S(   Ni   t   utfi    (	   t   sabnzbdt   DARWINt   Truet   gUTFt   localet   getdefaultlocalet   lowert   findt   False(    (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt	   auto_fsys   s    		)c         C   sL   t  j rH t  j rH |  d k r) t a qH |  d k r> t a qH t ƒ  n  d  S(   Ni   i   (   R   t   WIN32R   R   R   R   R   (   t   value(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   change_fsys)   s    		c           C   s   t  j s t  j r t St Sd  S(   N(   R   R   R   R   R   (    (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   reliable_unpack_names3   s    c         C   s²   t  |  t ƒ r5 t r" |  j d ƒ S|  j d d ƒ Sny t  |  t ƒ rª t r y |  j d ƒ |  SWq§ |  j d ƒ j d ƒ SXq® y |  j d ƒ j d d ƒ SWq® |  SXn |  Sd  S(   Ns   utf-8s   latin-1t   replace(   t
   isinstancet   unicodeR   t   encodet
   basestringt   decode(   t   p(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   platform_encode:   s     c         C   s<   t  r4 |  r4 |  j d d ƒ j d d ƒ j d d ƒ S|  Sd  S(   Ns   Latin-1R   s   utf-8t   ?t   _(   R   R   R   R   (   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt
   name_fixerR   s    (c         C   sF   t  } y |  j d ƒ Wn( y |  j d ƒ WqB t } qB Xn X| S(   Nt   asciis   utf-8(   R   R   R   (   R   t   utf8(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   is_utf8Z   s    c         C   s¹   t  j r@ y) |  j d ƒ j d d ƒ j d d ƒ SWqµ |  SXnu t r± y9 |  j d ƒ t  j rz d |  k rz t |  ƒ }  n  |  SWqµ y |  j d ƒ j d ƒ SWq® |  SXqµ Xn |  Sd  S(   Ns   utf-8s   latin-1R   R   R   s   &#s   Latin-1(   R   R   R   R   R   R   R   t	   fixup_ff4(   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   special_fixerf   s"    	)c         C   sw   t  |  t ƒ r |  St  |  t ƒ rc t rS y |  j d ƒ SWqS |  j d d ƒ SXn  |  j d d ƒ St t |  ƒ ƒ Sd  S(   Ns   utf-8s   latin-1R   (   R   R   t   strR   R   (   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   unicoder   s    c         C   s-   t  j r |  j d d ƒ S|  j d d ƒ Sd  S(   Ns   Latin-1R   s   utf-8(   R   R   R   (   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   unicode2local   s    	c         C   s·   t  |  t ƒ r nu t  |  t ƒ r{ t j s6 | d k rK |  j d d ƒ }  q‡ t rf |  j d d ƒ }  q‡ |  j d d ƒ }  n t |  ƒ }  | r |  j d d ƒ St |  ƒ j d d ƒ Sd  S(   Ns   utf-8R   s   Latin-1R   t   xmlcharrefreplace(	   R   R   R!   R   R   R   R   R   R    (   R   t   keep_escapet   encoding(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   xml_name™   s    c         C   sd   t  |  t ƒ r+ |  j d d ƒ j d d ƒ S|  r\ t r\ |  j d ƒ j d d ƒ j d d ƒ S|  Sd  S(   Ns   latin-1R   R   R   s   utf-8(   R   R   R   R   R   R   (   t   txt(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   latin1®   s
    %R   c         C   sX   t  |  t ƒ r n6 t  |  t ƒ r6 |  j d d ƒ }  n t t |  ƒ ƒ }  |  j | d ƒ S(   Ns   Latin-1R   R$   (   R   R   R!   R   R   (   t   ustrR&   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   encode_for_xml¹   s    c         C   s‘   t  |  t ƒ r |  j ƒ  St rk y  |  j d ƒ j ƒ  j d ƒ SWq |  j d d ƒ j ƒ  j d d ƒ SXn" |  j d d ƒ j ƒ  j d d ƒ Sd  S(   Ns   utf-8s   latin-1R   (   R   R   t   titleR   R   R   (   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   titlerÇ   s    
 &t   LatinFilterc           B   s   e  Z e d  „ Z RS(   c         K   s‡   t  | t ƒ r | St  | t ƒ rc y' t j r; | j d ƒ S| j d ƒ SWqƒ | j d d ƒ SXn  | d  k rs d St | | ƒ ƒ Sd  S(   Ns   latin-1s   utf-8R   u    (   R   R   R   R   R   R   t   None(   t   selft   valR!   t   kw(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   filterØ   s    	(   t   __name__t
   __module__R!   R3   (    (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyR.   Ö   s   t   EmailFilterc           B   s   e  Z e d  „ Z RS(   c         K   sq   t  | t ƒ r | St  | t ƒ rM y | j d ƒ SWqm | j d d ƒ SXn  | d  k r] d St | | ƒ ƒ Sd  S(   Ns   utf-8s   latin-1R   u    (   R   R   R   R   R/   (   R0   R1   R!   R2   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyR3   ì   s    (   R4   R5   R!   R3   (    (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyR6   è   s   s€   €‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿs€   ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×fáíóúñÑªº¿®¬Û¼¡«»~~~~~ÁÂÀ©~~~~¢¥~~~~~~~ãÃ~~~~~~~¤ðÐÊËÈ~ÍÎÏ~~~~¦Ì~ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±_¾¶§÷¸°¨·¹³²~ c         C   s   t  j r |  j t ƒ S|  Sd  S(   N(   R   R   t	   translatet   gTABLE_850_LATIN(   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   TRANS  s    	c         C   s   t  j r |  j t ƒ S|  Sd  S(   N(   R   R   R7   t   gTABLE_LATIN_850(   R   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   UNTRANS!  s    	c         C   s  g  } t  } } xá |  D]Ù } | r“ | j ƒ  r< | | 7} qð | d k rs | j t t | ƒ ƒ j d ƒ ƒ t  } qð | j d | | f ƒ t  } q | d k r¨ t } q | rã t  } | d k rÏ t } d } qð | j d | ƒ q | j | ƒ q Wd j | ƒ S(   Nt   ;R   s   &#%s%st   &t   #t    (   R   t   isdigitt   appendt   unichrt   intR   R   t   join(   R   t   namet   startt   ampt   cht   num(    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyR   +  s*    
"				s   &quot;t   "s   &apos;t   'c         C   sD   g  t  D] } | |  k r t ^ q r< d j d „  |  Dƒ ƒ S|  Sd  S(   NR?   c         s   s!   |  ] } t  j | | ƒ Vq d  S(   N(   t   _HTML_TABLEt   get(   t   .0RH   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pys	   <genexpr>U  s    (   RL   R   RD   (   R(   RH   (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   html_escapeQ  s    %(#   R   t   xml.sax.saxutilsR    t   Cheetah.FiltersR   R   R   R   R   R   R   R   R   R   R    R"   R#   R/   R'   R)   R+   R-   R.   R6   t   stringt   TAB_850t	   TAB_LATINt	   maketransR8   R:   R9   R;   R   RL   RO   (    (    (    s$   /var/www/SABnzbd/sabnzbd/encoding.pyt   <module>   s@   		
							
		
				
	
	