Format: application/x-python-code
⬇ Download File (4.2 KB)
   1  o
   2  
   3  /'h1�@s�ddlZddlZddlZzzddlZWn
   4  ey ddlZYnwWn
   5  ey/dZdZYnwdd�Zddlm	Z	m
   6  Z
   7  mZdZdZ
   8  dZd	Zd
   9  ZdZe�d�Ze�d
  10  �Zdedejeeffdd�Zdd�ZdS)�NcCst�|�dpdS)N�encoding�)�chardet�detect)�data�r�JC:\Users\shubh\Videos\agent\nova\Lib\site-packages\feedparser/encodings.py�lazy_chardet_encoding*sr	�)�CharacterEncodingOverride�CharacterEncodingUnknown�NonXMLContentTypesLo��s<?s<?s<s<zz^<\?xml[^>]*?>s#^<\?.*encoding=[\'"](.*?)[\'"].*\?>�line�returncCsj|�d�}|s	dS|d��}d}|dd�D]}|�d�\}}}|����dkr0|���d	�}q||fS)
  11  aParse an HTTP Content-Type header.
  12  
  13      The return value will be a tuple of strings:
  14      the MIME type, and the value of the "charset" (if any).
  15  
  16      This is a custom replacement for Python's cgi.parse_header().
  17      The cgi module will be removed in Python 3.13.
  18      �;)rrrrr
  19  N�=�charsetz"')�split�strip�	partition�lower)r�chunksZ	mime_typeZ
  20  charset_value�chunk�key�_�valuerrr�parse_content_typeGs
  21  
  22  �rc
  23  Cs�d}d}|dd�tjkrd}|dd�}n�|dd�tjkr(d}|dd�}n||dd�tjkrB|dd�tkrBd}|dd�}nb|dd�tjkr\|dd�tkr\d}|dd�}nH|dd	�tjkrnd
  24  }|d	d�}n6|dd�tkryd}n+|dd�tkr�d}n |dd�t	kr�d}n|dd�t
  25  kr�d}n
  26  |dd�tkr�d}|}z|r�|�|��
  27  d
  28  �}Wn
  29  ttfy�d}Ynwt�|�}|r�|��d�d
  30  ���}|r�|d
  31  vr�|}|�d�p�d}t|�\}}d}	d}
  32  d}||
  33  vs�|�d��r|�d��rd}	|�p|�pd
  34  }n8||v�s|�d��r!|�d��r!d}	|�pd}n|�d��r-|�p+d}n|�r;d|v�r;|�p9d}n|�p?d
  35  }|��dk�rId}|��dk�rRd}d}
  36  |�rl|	�sld|v�rfd|d}nd}t|�}
  37  d}g}|||td
  38  ddfD]M}t|��r�||�}|�s��qy||v�r��qy|�|�z|�|�}Wn
  39  ttf�y�Y�qywd}d}t�|��r�t�||�}n|d|}|�
  40  d
  41  �}|�s�tdd ||f�}
  42  d}n||k�r�t d!||f�}
  43  |}||d"<|
  44  �r�d#|d$<|
  45  |d%<|S)&z|Detect and convert the character encoding to UTF-8.
  46  
  47      http_headers is a dictionary
  48      data is a raw string (not Unicode)rN�zutf-32bezutf-32le�zutf-16bezutf-16le�zutf-8�cp037r)�u16zutf-16�utf16�utf_16�u32zutf-32�utf32�utf_32ziso-10646-ucs-2ziso-10646-ucs-4Zcsucs4Z	csunicodezucs-2zucs-4zcontent-type)zapplication/xmlzapplication/xml-dtdz&application/xml-external-parsed-entity)ztext/xmlztext/xml-external-parsed-entityzapplication/z+xmlr
  49  ztext/zus-asciiz
  50  iso-8859-1�gb2312�gb18030z%s is not an XML media typezno Content-type specifiedzwindows-1252z
  51  iso-8859-2z&<?xml version='1.0' encoding='utf-8'?>�
  52  z#document encoding unknown, I tried z>%s, %s, utf-8, windows-1252, and iso-8859-2 but nothing workedz)document declared as %s, but parsed as %srTZbozoZbozo_exception)!�codecs�BOM_UTF32_BE�BOM_UTF32_LE�BOM_UTF16_BE�
  53  ZERO_BYTES�BOM_UTF16_LE�BOM_UTF8�
  54  EBCDIC_MARKER�UTF16BE_MARKER�UTF16LE_MARKER�UTF32BE_MARKER�UTF32LE_MARKER�decode�encode�UnicodeDecodeError�LookupError�RE_XML_PI_ENCODING�match�groupsr�getr�
  55  startswith�endswithr
  56  r	�callable�append�RE_XML_DECLARATION�search�subrr)Zhttp_headersr�resultZbom_encodingZxml_encodingZtempdataZxml_encoding_matchZhttp_content_typeZ
  57  http_encodingZacceptable_content_typeZapplication_content_typesZtext_content_typesZrfc3023_encoding�error�msgZknown_encoding�tried_encodingsZproposed_encodingZnew_declarationrrr�convert_to_utf8_s�/	""��
  58  ��
  59  ��
  60  
  61  �
  62  
  63  
  64  �
  65  ���
  66  ��rI)r*�re�typing�tZcchardetr�ImportErrorr	�
  67  exceptionsrrr
  68  r1r2r3r4r5r.�compilerBr:�str�TuplerrIrrrr�<module>s4���	
  69  
  70