
    g1                        d dl Z d dlZd dlZ	 	 d dlZd Zddlm	Z	m
Z
mZ dZdZdZdZd	Zd
Z ej$                  d      Z ej$                  d      Zdedej,                  eef   fdZd Zy# e$ r d dlZY cw xY w# e$ r dZdZY ow xY w)    Nc                 :    t        j                  |       d   xs dS )Nencoding )chardetdetect)datas    G/var/www/html/venv/lib/python3.12/site-packages/feedparser/encodings.pylazy_chardet_encodingr
   *   s    ~~d#J/525       )CharacterEncodingOverrideCharacterEncodingUnknownNonXMLContentTypes   Los    < ?s   < ? s      <s   <   z  z^<\?xml[^>]*?>s#   ^<\?.*encoding=[\'"](.*?)[\'"].*\?>linereturnc                    | j                  d      }|sy|d   j                         }d}|dd D ]X  }|j                  d      \  }}}|j                         j                         dk(  s:|j                         j                  d	      }Z ||fS )
a  Parse an HTTP Content-Type header.

    The return value will be a tuple of strings:
    the MIME type, and the value of the "charset" (if any).

    This is a custom replacement for Python's cgi.parse_header().
    The cgi module will be removed in Python 3.13.
    ;)r   r   r   r   r   N=charsetz"')splitstrip	partitionlower)r   chunks	mime_typecharset_valuechunkkey_values           r	   parse_content_typer!   G   s     ZZ_Fq	!IM 7,Q99;)+!KKM//6M7
 m##r   c                     d}d}|dd t         j                  k(  rd}|dd }n|dd t         j                  k(  rd}|dd }n|dd t         j                  k(  r|dd t        k7  rd}|dd }n|dd t         j
                  k(  r|dd t        k7  rd}|dd }nh|dd	 t         j                  k(  rd
}|d	d }nJ|dd t        k(  rd}n;|dd t        k(  rd}n,|dd t        k(  rd}n|dd t        k(  rd}n|dd t        k(  rd}|}	 |r |j                  |      j                  d
      }t        j                  |      }|r8|j%                         d   j                  d
      j'                         }|r|dv r|}| j)                  d      xs d}t+        |      \  }}d}	d}
d}||
v s"|j-                  d      r|j/                  d      rd}	|xs |xs d
}nZ||v s"|j-                  d      r|j/                  d      r	d}	|xs d}n+|j-                  d      r|xs d}n| rd| vr|xs d}n|xs d
}|j'                         dk(  rd}|j'                         dk(  rd}d}| r|	sd| v r	d| d   z  }nd}t1        |      }d}g }|||t2        d
ddfD ]  }t5        |      r ||      }|s||v r|j7                  |       	 |j                  |      }d}d}t8        j;                  |      rt8        j=                  ||      }n|dz   |z   }|j                  d
      } n |st?        d|d |d!z         }d}n|k7  rtA        d"|d#|      }|}||d$<   |r
d%|d&<   ||d'<   |S # t         t"        f$ r d}Y 0w xY w# t         t"        f$ r Y w xY w)(z|Detect and convert the character encoding to UTF-8.

    http_headers is a dictionary
    data is a raw string (not Unicode)r   N   zutf-32bezutf-32le   zutf-16bezutf-16le   zutf-8cp037r   )u16zutf-16utf16utf_16u32zutf-32utf32utf_32ziso-10646-ucs-2ziso-10646-ucs-4csucs4	csunicodezucs-2zucs-4zcontent-type)zapplication/xmlzapplication/xml-dtdz&application/xml-external-parsed-entity)ztext/xmlztext/xml-external-parsed-entityzapplication/z+xmlr   ztext/zus-asciiz
iso-8859-1gb2312gb18030z%s is not an XML media typezno Content-type specifiedzwindows-1252z
iso-8859-2z&<?xml version='1.0' encoding='utf-8'?>
z#document encoding unknown, I tried z, z8, utf-8, windows-1252, and iso-8859-2 but nothing workedzdocument declared as z, but parsed as r   Tbozobozo_exception)!codecsBOM_UTF32_BEBOM_UTF32_LEBOM_UTF16_BE
ZERO_BYTESBOM_UTF16_LEBOM_UTF8EBCDIC_MARKERUTF16BE_MARKERUTF16LE_MARKERUTF32BE_MARKERUTF32LE_MARKERdecodeencodeRE_XML_PI_ENCODINGmatchUnicodeDecodeErrorLookupErrorgroupsr   getr!   
startswithendswithr   r
   callableappendRE_XML_DECLARATIONsearchsubr   r   )http_headersr   resultbom_encodingxml_encodingtempdataxml_encoding_matchhttp_content_typehttp_encodingacceptable_content_typeapplication_content_typestext_content_typesrfc3023_encodingerrormsgknown_encodingtried_encodingsproposed_encodingnew_declarations                      r	   convert_to_utf8ra   _   st   ^ LL BQx6&&&!ABx	bqV((	(!ABx	bqV((	(T!AY*-D!ABx	bqV((	(T!AY*-D!ABx	bqV__	$ABx	bq]	"	bq^	#!	bq^	#!	bq^	#!	bq^	#!H	@{{<077@H 055h?)00215<<WEKKM\ .
 
 (L %((8>B'9:K'L$}!KH!::%00@)226: #$(CLCG!33%009)226: #$(6J		%	%g	.(6J	.<'7<'27 8+$x'  E4\)/,~2NNC-C!#& NO.l3Wnl\ %& 1$ 7 /01	;;01D NJO!((.)--otD&-4;;w'D-0 (1|--. 	.	.)023 -)F:v#( Kq , " "	"v #K0 		s$    "M 2M+M('M(+M=<M=)r4   retypingtcchardetr   ImportErrorr
   
exceptionsr   r   r   r;   r<   r=   r>   r?   r8   compilerL   rB   strTupler!   ra    r   r	   <module>rl      s   :  	 
6"6  $$$$$
  RZZ 12   RZZ GH $S $QWWS#X%6 $0Pw   !G !s)   A+ +	A74A: 6A77A: :	BB