Format: application/x-python-code
⬇ Download File (18.9 KB)
   1  o
   2  
   3  /'h�}�
   4  @s�ddlZddlZddlZddlZddlZddlZddlmZddl	m
   5  Z
   6  mZmZm
   7  Z
   8  mZmZmZddlmZmZddlmZddlmZmZmZGdd	�d	e
   9  jejeje
  10  jejejej�	ZdS)
  11  �N�)�_cp1252)�_base�cc�dc�georss�itunes�mediarss�psc)�_sanitize_html�_HTMLSanitizer)�FeedParserDict)�_urljoin�make_safe_absolute_uri�resolve_relative_uriscs�eZdZidd�dd�dd�dd�dd�dd�dd�dd�d	d�d
  12  d�dd�dd�d
  13  d�dd�dd�dd�dd�idd�dd�dd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5��id6d7�d8d9�d:d;�d<d=�d>d=�d?d@�dAdB�dCdB�dDdE�dFdG�dHdI�dJdK�dLdM�dNdO�dPdQ�dRdS�dTdU��dVdWdXdYdZd[d\d]d^d_d`dadbdcddde��ZiZhdf�Zhdg�Zhdg�ZdhdihZ�fdjdk�Z	dldm�Z
  14  dndo�Zdpdq�Zdrds�Z
  15  dtdu�Zd�dwdx�Zdydz�Zd{d|�Zd}d~�Zdd��Zed�d���Zd�d��Zd�d��Zed�d���Zed�d���Zd�d��Zd�d�d��Zd�d��Zd�d��Zed�d���Zd�d��Zd�d��Z d�d��Z!ed�d���Z"d�d�d��Z#d�d��Z$d�d�d��Z%d�d��Z&d�d�d��Z'd�d��Z(d�d��Z)d�d��Z*�Z+S)��_FeedParserMixin��http://backend.userland.com/rssz%http://blogs.law.harvard.edu/tech/rss�http://purl.org/rss/1.0/�&http://my.netscape.com/rdf/simple/0.9/zhttp://example.com/newformat#zhttp://example.com/nechozhttp://purl.org/echo/zuri/of/echo/namespace#zhttp://purl.org/pie/zhttp://purl.org/atom/ns#zhttp://www.w3.org/2005/Atomz'http://purl.org/rss/1.0/modules/rss091#zhttp://webns.net/mvcb/Zadminz,http://purl.org/rss/1.0/modules/aggregation/�agz)http://purl.org/rss/1.0/modules/annotate/Zannotatez!http://media.tangent.org/rss/1.0/Zaudioz-http://backend.userland.com/blogChannelModuleZblogChannelz%http://creativecommons.org/ns#licenserzhttp://web.resource.org/cc/z>http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.htmlZcreativeCommonsz4http://backend.userland.com/creativeCommonsRssModulez'http://purl.org/rss/1.0/modules/company�coz(http://purl.org/rss/1.0/modules/content/�contentz&http://my.theinfo.org/changed/1.0/rss/�cpz http://purl.org/dc/elements/1.1/rzhttp://purl.org/dc/terms/Zdctermsz&http://purl.org/rss/1.0/modules/email/�emailz&http://purl.org/rss/1.0/modules/event/Zevz*http://rssnamespace.org/feedburner/ext/1.0Z
  16  feedburnerzhttp://freshmeat.net/rss/fm/�fmzhttp://xmlns.com/foaf/0.1/Zfoafz(http://www.w3.org/2003/01/geo/wgs84_pos#Zgeozhttp://www.georss.org/georssrzhttp://www.opengis.net/gmlZgmlzhttp://postneo.com/icbm/Zicbmz&http://purl.org/rss/1.0/modules/image/�imagez*http://www.itunes.com/DTDs/PodCast-1.0.dtdrz'http://example.com/DTDs/PodCast-1.0.dtdz%http://purl.org/rss/1.0/modules/link/�lzhttp://search.yahoo.com/mrssZmediazhttp://search.yahoo.com/mrss/z4http://madskills.com/public/xml/rss/module/pingback/Zpingbackz.http://prismstandard.org/namespaces/1.2/basic/Zprismz+http://www.w3.org/1999/02/22-rdf-syntax-ns#�rdfz%http://www.w3.org/2000/01/rdf-schema#Zrdfsz*http://purl.org/rss/1.0/modules/reference/�refz*http://purl.org/rss/1.0/modules/richequiv/Zreqvz'http://purl.org/rss/1.0/modules/search/�searchz&http://purl.org/rss/1.0/modules/slash/�slashz)http://schemas.xmlsoap.org/soap/envelope/�soap�ss�str�subZsyZszfZtaxoZthr�tiZ	trackbackZwfwZwiki�xhtmlZxlink�xmlr
  17  )z.http://purl.org/rss/1.0/modules/servicestatus/z-http://hacks.benhammersley.com/rss/streaming/z-http://purl.org/rss/1.0/modules/subscription/z,http://purl.org/rss/1.0/modules/syndication/z/http://schemas.pocketsoap.com/rss/myDescModule/z)http://purl.org/rss/1.0/modules/taxonomy/z*http://purl.org/rss/1.0/modules/threading/z*http://purl.org/rss/1.0/modules/textinput/z5http://madskills.com/public/xml/rss/module/trackback/z$http://wellformedweb.org/commentAPI/z%http://purl.org/rss/1.0/modules/wiki/zhttp://www.w3.org/1999/xhtmlzhttp://www.w3.org/1999/xlinkz$http://www.w3.org/XML/1998/namespacez"http://podlove.org/simple-chapters>
  18  �icon�linkZlogo�docs�id�hrefZwfw_commentrss�urlZwfw_comment�comments>	�summaryZrightsZtagline�infor�subtitle�description�title�	copyright�application/xhtml+xml�	text/htmlcs�|js|j��D]\}}||j|��<qt�|_g|_d|_i|_d|_	d|_
  19  d|_d|_d|_
  20  d|_d|_d|_d|_t�|_t�|_d|_i|_g|_g|_g|_d|_d|_d|_d|_|jrl|j�dd�|jd<i|_t t!|��"�dS)Nrr������_�-�language)#�_matchnamespaces�
  21  namespaces�items�lowerr
  22  �feeddata�entries�version�namespaces_in_use�infeed�inentry�	incontent�intextinput�inimageZinauthorZ
  23  incontributorZinpublisher�insource�
  24  sourcedata�
  25  contentparamsZ_summaryKey�namespacemap�elementstack�	basestack�	langstack�svgOK�title_depth�depthZ
  26  hasContent�lang�replace�property_depth_map�superr�__init__)�self�k�v��	__class__��FC:\Users\shubh\Videos\agent\nova\Lib\site-packages\feedparser/mixin.pyrW�s>	z_FeedParserMixin.__init__cCst��N)�NotImplementedError)rX�kvr]r]r^�_normalize_attributes��z&_FeedParserMixin._normalize_attributescs��jd7_�fdd�|D�}t|�}|�d|�d��p�j}t|t�r,|��jd�}�jr:t�j|�p7�j�_nt	�j|��_|�d|�d��}|d	krQd}n|durX�j
  27  }|rg|d
  28  vrg|�dd��jd
  29  <|�_
  30  �j
  31  ��j��j�|�|D]\}}|�d�r���|dd�|�qy|dkr���d|�qy�jr��j�dd��d�s�|dvr�dSd�jd<�j�r
  32  �j�d�dk�r
  33  |�d�dkr�|�dd�\}}�j�|d	�}|dkr�|dkr�|�d|f�|dkr�|dkr�|�d|f�|dkr��jd7_�jd|��|�fdd�S|�d�dk�r|�dd�\}}	nd	|}}	�j�||�}|�r.|d}|�s9|dv�r9d�_|�sD|dv�rDd�_d ||	}
  34  z
  35  t�|
  36  �}||�WSt�yz||	}t |�dk�ro��!|d�YS��"�}
  37  ||
  38  |<YdSw)!Nrcsg|]}��|��qSr])rb)�.0�attr�rXr]r^�
  39  <listcomp>�sz5_FeedParserMixin.unknown_starttag.<locals>.<listcomp>zxml:base�base�ignorezxml:langrSr)�feedZrsszrdf:RDFr9r:r;zxmlns:�Zxmlns�typer(�z	xhtml:div�divr6�:r8�mathz"http://www.w3.org/1998/Math/MathML�svgzhttp://www.w3.org/2000/svgz<%s%s>r��escape)r4r*r3�name)r4r*r3r.r-�width�heightZ_start_)#rR�dict�get�baseuri�
  40  isinstance�bytes�decode�encodingrrrSrTr@rN�appendrO�
  41  startswith�track_namespacerFrK�endswith�find�splitrCrP�handle_data�strattrsrLrGrH�getattr�AttributeError�len�push�_get_context)rX�tag�attrs�attrs_dryrS�prefix�uri�	namespace�suffix�
  42  methodname�methodZunknown_tag�contextr]rfr^�unknown_starttag�s|
  43  
  44  �
  45  
  46  
  47  
  48  �z!_FeedParserMixin.unknown_starttagcCst|�d�dkr|�dd�\}}nd|}}|j�||�}|r"|d}|dkr0|jr0|jd8_d||}z|jr=t��t||�}|�WntyV|�||�Ynw|jro|j	�dd	��
  49  d	�so|d
  50  vrjdSd|j	d<|jr�|j	�d�dkr�|�d�d}|jd|d
  51  d�|jr�|j��|jr�|jdr�|jd|_
  52  |jr�|j��|jr�|jd|_|jd8_dS)Nror8rrr9rqZ_end_rlr(rmr6z</%s>rrr)r�r�rLrxrPr�r��poprFrKr�r�rNryrOrSrR)rXr�r�r�r�r�r]r]r^�unknown_endtag/sB
  53  
  54  
  55  �
  56  
  57  
  58  z_FeedParserMixin.unknown_endtagcCsr|jsdS|��}|dvrd|}n|ddkr"t|dd�d�}nt|�}t|��d�}|jdd	�|�dS)
  59  N)
  60  Z34�38�39Z60Z62Zx22Zx26Zx27Zx3cZx3ez&#%s;r�xr��utf-8r8�)rMr?�int�chr�encoder~)rXr�text�cr]r]r^�handle_charref[s
  61  z_FeedParserMixin.handle_charrefcCs�|jsdS|dvrd|}n;||jvr(|j|}|�d�r'|�d�r'|�|�Sn!ztjj|Wn
  62  ty=d|}Ynwttjj|��	d�}|jdd�
  63  |�dS)N)�lt�gt�quot�ampZaposz&%s;z&#�;r�r8r�)rM�entitiesrr��handle_entityref�html�name2codepoint�KeyErrorr�r�r~)rXrr�r]r]r^r�js 
  64  
  65  
  66  
  67  ��z!_FeedParserMixin.handle_entityrefrcCsD|jsdS|r|j�d�dkrtjj�|�}|jdd�|�dS)Nrlr6r8r�)rMrKrxr(�sax�saxutilsrsr~)rXr�rsr]r]r^r�}s
  68  z_FeedParserMixin.handle_datacC�dSr_r]�rXr�r]r]r^�handle_comment��z_FeedParserMixin.handle_commentcCr�r_r]r�r]r]r^�	handle_pi�r�z_FeedParserMixin.handle_picCr�r_r]r�r]r]r^�handle_decl�rcz_FeedParserMixin.handle_declcCs�|j||d�dkr3|j�d|�}|dkrt|j�}|S|�tjj�|j|d|��d�|dS|j�d|�}|dkrB|dS|S)	N�	z	<![CDATA[z]]>r8r��>r)�rawdatar�r�r�r(r�r�rs)rX�irYr]r]r^�parse_declaration�s
  69  $z"_FeedParserMixin.parse_declarationcCs@|��}|dks|dkrd}|S|dkrd}|S|dkrd}|S)Nr��plain�
  70  text/plainr�r7r'r6)r?)�content_typer]r]r^�map_content_type�s��z!_FeedParserMixin.map_content_typecCs�|��}|js ||fdkrd|_n|dkrd|_n|dkr d|_|�d�dkr+d	}|}||jvrB|j||j|<||j|j|<dS||j|pHd
  71  <dS)N)NrZrss090rZrss10zhttp://www.w3.org/2005/atom�atom10zbackend.userland.com/rssr8rr)r?rBr�r<rLrC)rXr�r�Zlowerurir]r]r^r��s
  72  z _FeedParserMixin.track_namespacecCst|jpd|�S)Nr)rry)rXr�r]r]r^�resolve_uri��z_FeedParserMixin.resolve_uricCs|Sr_r])�element�datar]r]r^�decode_entities�r�z _FeedParserMixin.decode_entitiescCsd�dd�|D��S)Nrcss4�|]}d|dtjj�|dddi�fVqdS)z %s="%s"rr�"z&quot;N)r(r�r�rs�rd�tr]r]r^�	<genexpr>�s
  73  �"�
  74  �z,_FeedParserMixin.strattrs.<locals>.<genexpr>)�join)r�r]r]r^r��s
  75  �z_FeedParserMixin.strattrscCs|j�||gg�dSr_)rMr~)rXr��expecting_textr]r]r^r��sz_FeedParserMixin.pushc
  76  Cs�|jsdS|jdd|krdS|j��\}}}t|�D]\}}t|t�r,|�d�||<q|jdkr�|j�dd�dkr�|rZt	|�dkrZ|d�
  77  �sZ|d=|rZt	|�dkrZ|d�
  78  �rI|ryt	|�dkry|d�
  79  �sy|d=|ryt	|�dkry|d�
  80  �rh|r�|dd	ks�|d�d
  81  �r�|ddkr�d}|dd�D] }|�d�r�|d8}|dkr�nq�|�d
  82  �r�|�d�s�|d7}q�|dd�}d�
  83  |�}	|r�|	�
  84  �}	|s�|	Str�|j�dd�r�z
  85  t�|	�d���d�}	Wntjtjtfy�Ynw||jv�r|	�r|dk�r|j�r|�|	�}	|j�dd��s|�||	�}	|j�d��s1|j�d�dk�r1|�|	��r1d|jd<z|jd=Wn
  86  t�yAYnwz|jd=Wn
  87  t�yRYnw|�|j�dd��|jv}
  88  |
  89  �r{|j�r{||jv�r{t|	|j|j |j�dd��}	|
  90  �r�|j!�r�||j"v�r�t#|	|j |j�dd��}	|j �r�t|	t��r�|	�|j d�}	|j dv�r�t|	t��s�z
  91  |	�d��d�}	Wnt$tf�y�Ynwt|	t��s�|	�%t&�}	|dv�r�|	S|dk�r�d|j'k�r�|j(k�r�|	S|j)�r�|j*�s�|dk�r|j+d�,|g�t-�.|j�}|	|d<|j+d|�/|�|	S|dk�rH|j0�sF|	�1dd �}	t2�3d!d"|	�}	|	|j+d|<|	�rF|	|j+dd#dd$<|	S|d%k�rOd&}|j4�,|j+di��|�}|du�sg|j(|k�ry|j(|j4|j+d|<|	|j+d|<|j5�r�t-�.|j�}|	|d<||j+d|d'<|	S|j6�s�|j*�r�|�7�}
  92  |d%k�r�d(}|	|
  93  |<|dk�r�t2�3d!d"|	�}	|	|
  94  |<|	|
  95  d#dd$<|	S|j5�r�t-�.|j�}|	|d<||
  96  |d'<|	S))Nr8rr�r�rlr�r6rz<div>z<div z</div>z</�<z/>r�base64�utf8r,Zatomr�r7�moderi)r�zutf-8_INVALID_PYTHON_3z
  97  iso-8859-1)�category�tagsZitunes_keywordsr4r�valuer*z&amp;�&z&([A-Za-z0-9_]+);z&\g<1>�linksr-r3r0�_detailr2)8rMr��	enumeraterzr{r|rBrKrxr��striprr�r�r��decodebytesr��binascii�Error�
  98  Incomplete�UnicodeDecodeError�can_be_relative_uriZ
  99  guidislinkr�r��looks_like_htmlr�r��
 100  html_typesr�can_contain_relative_urisryr}Z
 101  sanitize_html�can_contain_dangerous_markupr�UnicodeEncodeError�	translaterrQrRrErIrA�
 102  setdefault�copy�deepcopyr~rHrT�rer%rUrFrDr�)rXr�Zstrip_whitespacer��piecesr�rZrRZpiece�outputZ
 103  is_htmlishrKZold_value_depthr�r]r]r^r��s�
 104  ���*
 105  ��
 106  �
 107   
 108  ���
 109  
 110  $�
 111  $
 112  �
 113  ��
 114  
 115  �z_FeedParserMixin.popcCsl|jd7_|jr|j�dd�|_t|�|�d|��|j|jd��|_|�||j�|jd<|�	||�dS)Nrr9r:rl)rlr;rhr�)
 116  rFrSrTr
 117  r�rxryrK�
 118  _is_base64r�)rXr�r�Zdefault_content_typer�r]r]r^�push_contentis
 119  �z_FeedParserMixin.push_contentcCs&|�|�}|jd8_|j��|S)Nr)r�rFrK�clear)rXr�r�r]r]r^�pop_contentts
 120  
 121  z_FeedParserMixin.pop_contentcCs\t�d|�st�d|�sdStdd�t�d|�D��rdStdd�t�d|�D��r,dSd	S)
 122  z3
 123          :type s: str
 124          :rtype: bool
 125          z</(\w+)>z&#?\w+;Fcss"�|]}|��tjvr|VqdSr_)r?rZacceptable_elementsr�r]r]r^r��s� z3_FeedParserMixin.looks_like_html.<locals>.<genexpr>z</?(\w+)css �|]}|tjjvr|VqdSr_)r�r��
 126  entitydefs)rd�er]r]r^r��s�z&(\w+);T)r�r �any�findall)�sr]r]r^r�~sz _FeedParserMixin.looks_like_htmlcCsL|�d�}|dkr$|d|�}||dd�}|j�||�}|d|}|S)Nror8r)r�rLrx)rXrtZcolonposr�r�r]r]r^�_map_to_standard_prefix�s
 127  z(_FeedParserMixin._map_to_standard_prefixcCs|�|�|��Sr_)rxr�)rXr�rtr]r]r^�_get_attribute�r�z_FeedParserMixin._get_attributecCsT|�dd�dkr
 128  dS|jd�d�rdS|jd�d�rdS|jd�d	�r(dSdS)
 129  Nr�rr�rrlztext/rz+xmlz/xml)rxrKrr�)rXr�rKr]r]r^r��sz_FeedParserMixin._is_base64c
 130  Csh|�d|�d|�dd���}|r2z|d=Wn	tyYnwz|d=Wn	ty-Ynw||d<|S)Nr.r�r-)rxr�)r�r-r]r]r^�
 131  _enforce_href�s
 132  �
 133  �z_FeedParserMixin._enforce_hrefFcCs(|��}|r|||<dS|�||�dSr_)r�r�)rX�keyr��	overwriter�r]r]r^�_save�sz_FeedParserMixin._savecCs`|jr|j}|S|jrd|jvr|jd}|S|jr!|jd}|S|jr+|jd}|S|j}|S)NrZ	textinputr8)rIrJrHr@rGrErA)rXr�r]r]r^r��s	�
 134  �
 135  �
 136  �z_FeedParserMixin._get_context�authorcCsV|��}|�|dt��|||d|<|��|�dt�g�||dd|<dS)Nr�Zauthorsr8)r�r�r
 137  �_sync_author_detail)rXr�r�r�r�r]r]r^�_save_author�sz_FeedParserMixin._save_authorcCs,|��}|�dt�g�||dd|<dS)NZcontributorsr8)r�r�r
 138  )rXr�r�r�r]r]r^�_save_contributor�sz"_FeedParserMixin._save_contributorcCsZ|��}|�d|t�g�d}|r<|�d�}|�d�}|r*|r*d||f||<dS|r2|||<dS|r:|||<dSdS|�|�d}}|sHdSt�d|�}|r�|�d�}|�|d�}|�d	d�}|�d
 139  d�}|�dd�}|��}|r|ddkr|d
 140  d�}|r�|ddkr�|dd�}|��}|s�|r�|�d||�|r�||d<|r�||d<dSdS)Nz%ssr8rtrz%s (%s)z�(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))(\?subject=\S+)?rrz()z<>z&lt;&gt;�(r�)z	%s_detail)	r�rxr
 141  r�r �grouprTr�r�)rXr�r��detailrtrr�Z
 142  emailmatchr]r]r^r��sF
 143  
 144  �
 145  �z$_FeedParserMixin._sync_author_detailcCsL|��}|�dg�}|s|s|sdSt|||d�}||vr$|�|�dSdS)Nr�)�term�scheme�label)r�r�r
 146  r~)rXrrrr�r�r�r]r]r^�_add_tags�z_FeedParserMixin._add_tagcCs|�dd�dS)Nr�r)r�)rXr�r]r]r^�_start_tags	sz_FeedParserMixin._start_tagscCs,|�d��d�D]}|�|��dd�qdS)Nr��,)r�r�rr�)rXrr]r]r^�	_end_tagss�z_FeedParserMixin._end_tags)r)F)r�),�__name__�
 147  __module__�__qualname__r=r<r�r�r�r�rWrbr�r�r�r�r�r�r�r�r��staticmethodr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�
 148  __classcell__r]r]r[r^r*sL	��������	�
 149  ���
 150  ������������������ �!�"�#�$�%�&�'�(�)�*�,�-�.�/�0�1�2�3�4�5�6�F
 151  
 152  �-Z,
 153  	
 154  
 155  
 156  
 157  
 158  
 159  
 160  	
 161  
 162  
 163  
 164  
 165  &	r)r�r�r��
 166  html.entitiesr�r�Zxml.sax.saxutilsr(rr=rrrrrr	r
 167  Z	sanitizerrr�utilr
 168  �urlsrrr�	Namespacerr]r]r]r^�<module>s($
 169  �