o
    úG§bêB  ã                   @   s@   d dl Z ddlmZ ddlmZ ddlmZ G dd„ deƒZdS )é    Né   )Ú_parse_date)Úmake_safe_absolute_uri)ÚFeedParserDictc                   @   sà  e Zd ZdZddddddddddddddœZdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	e	Z
dd„ Zdd„ Zdd„ ZeZdd„ ZeZdd„ ZeZdd„ ZeZdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ ZeZeZd,d-„ Z e Z!e Z"d.d/„ Z#d0d1„ Z$d2d3„ Z%e%Z&d4d5„ Z'e'Z(d6d7„ Z)e)Z*d8d9„ Z+e+Z,d:d;„ Z-e-Z.d<d=„ Z/e/Z0d>d?„ Z1d@dA„ Z2dBdC„ Z3dDdE„ Z4dFdG„ Z5e5Z6e5Z7dHdI„ Z8e8Z9e8Z:dJdK„ Z;e;Z<e;Z=dLdM„ Z>e>Z?e>Z@dNdO„ ZAdPdQ„ ZBdRdS„ ZCdTdU„ ZDdVdW„ ZEeEZFdXdY„ ZGeGZHdZd[„ ZId\d]„ ZJd^d_„ ZKd`da„ ZLeLZMdbdc„ ZNeNZOddde„ ZPdfdg„ ZQdhdi„ ZRdjdk„ ZSdldm„ ZTeTZUdndo„ ZVeVZWdpdq„ ZXeXZYdrds„ ZZdtdu„ Z[dvdw„ Z\dxdy„ Z]dzd{„ Z^d|d}„ Z_d~d„ Z`d€d„ Zad‚dƒ„ ZbebZcd„d…„ ZdedZed†d‡„ ZfefZgefZhefZiefZjdˆd‰„ ZkdŠd‹„ ZldŒS )Ú	NamespacezêSupport for the Atom, RSS, RDF, and CDF feed formats.

    The feed formats all share common elements, some of which have conflicting
    interpretations. For simplicity, all of the base feed format support is
    collected here.
    Ú )r   zhttp://backend.userland.com/rssz%http://blogs.law.harvard.edu/tech/rsszhttp://purl.org/rss/1.0/z&http://my.netscape.com/rdf/simple/0.9/zhttp://example.com/newformat#zhttp://example.com/nechozhttp://purl.org/echo/zuri/of/echo/namespace#zhttp://purl.org/pie/zhttp://purl.org/atom/ns#zhttp://www.w3.org/2005/Atomz'http://purl.org/rss/1.0/modules/rss091#c                 C   sf   dddddœ}| j r| j  d¡s1| dd¡}| |¡}|r"|| _ d S | d	¡r,d
| _ d S d| _ d S d S )NZrss091uZrss092Zrss093Zrss094)z0.91z0.92z0.93z0.94ZrssÚversionr   z2.Zrss20)r   Ú
startswithÚget©ÚselfÚattrs_dZ
versionmapZattr_versionr   © r   úF/usr/local/lib/python3.10/dist-packages/feedparser/namespaces/_base.pyÚ
_start_rss<   s   ü





øzNamespace._start_rssc                 C   s   d| _ |  |¡ d S )Né   )ÚinfeedÚ_cdf_common©r   r   r   r   r   Ú_start_channelQ   s   zNamespace._start_channelc                 C   s`   d|v r|   i ¡ |d | jd d< |  ¡  d|v r.|  i ¡ |d | jd d< |  ¡  d S d S )NZlastmodéÿÿÿÿÚhref)Ú_start_modifiedZelementstackÚ_end_modifiedÚ_start_linkÚ	_end_linkr   r   r   r   r   U   s   

ýzNamespace._cdf_commonc                 C   sH   d| _ ddddœ}| js"| d¡}| |¡}|r|| _d S d| _d S d S )Nr   Zatom01Zatom02Zatom03)z0.1z0.2z0.3r   Zatom)r   r   r
   r   r   r   r   Ú_start_feed_   s   þ



úzNamespace._start_feedc                 C   s
   d| _ d S )Nr   )r   ©r   r   r   r   Ú_end_channell   s   
zNamespace._end_channelc                 C   s8   |   ¡ }| js| dtƒ ¡ d| _d| _|  dd¡ d S )NÚimager   r   r   )Ú_get_contextÚinentryÚ
setdefaultr   ÚinimageÚtitle_depthÚpush©r   r   Úcontextr   r   r   Ú_start_imagep   s   zNamespace._start_imagec                 C   ó   |   d¡ d| _d S )Nr   r   )Úpopr#   r   r   r   r   Ú
_end_imagex   ó   

zNamespace._end_imagec                 C   s2   |   ¡ }| dtƒ ¡ d| _d| _|  dd¡ d S )NÚ	textinputr   r   r   )r    r"   r   Úintextinputr$   r%   r&   r   r   r   Ú_start_textinput|   s
   zNamespace._start_textinputc                 C   r)   )Nr-   r   )r*   r.   r   r   r   r   Ú_end_textinput„   r,   zNamespace._end_textinputc                 C   s:   d| _ |  dd¡ |  ¡ }| dg ¡ |d  tƒ ¡ d S )Nr   ÚauthorZauthors)Úinauthorr%   r    r"   Úappendr   r&   r   r   r   Ú_start_author‰   s
   zNamespace._start_authorc                 C   s   |   d¡ d| _|  ¡  d S )Nr1   r   )r*   r2   Ú_sync_author_detailr   r   r   r   Ú_end_author’   s   
zNamespace._end_authorc                 C   s:   d| _ |  ¡ }| dg ¡ |d  tƒ ¡ |  dd¡ d S )Nr   ZcontributorsÚcontributorr   )Úincontributorr    r"   r3   r   r%   r&   r   r   r   Ú_start_contributor˜   s
   zNamespace._start_contributorc                 C   r)   )Nr7   r   )r*   r8   r   r   r   r   Ú_end_contributorŸ   r,   zNamespace._end_contributorc                 C   ó   |   dd¡ d S )NÚnamer   ©r%   r   r   r   r   Ú_start_name£   ó   zNamespace._start_namec                 C   sl   |   d¡}| jr|  d|d¡ d S | jr|  d|¡ d S | jr'|  d|¡ d S | jr4|  ¡ }||d< d S d S )Nr<   Ú	publisher)r*   ÚinpublisherÚ_save_authorr2   r8   Ú_save_contributorr.   r    ©r   Úvaluer'   r   r   r   Ú	_end_name¦   s   
þzNamespace._end_namec                 C   r;   ©NÚwidthr   r=   r   r   r   r   Ú_start_width²   r?   zNamespace._start_widthc                 C   óL   |   d¡}zt|ƒ}W n ty   d}Y nw | jr$|  ¡ }||d< d S d S rG   ©r*   ÚintÚ
ValueErrorr#   r    rD   r   r   r   Ú
_end_widthµ   ó   
ÿþzNamespace._end_widthc                 C   r;   ©NÚheightr   r=   r   r   r   r   Ú_start_height¿   r?   zNamespace._start_heightc                 C   rJ   rP   rK   rD   r   r   r   Ú_end_heightÂ   rO   zNamespace._end_heightc                 C   r;   )Nr   r   r=   r   r   r   r   Ú
_start_urlÌ   r?   zNamespace._start_urlc                 C   s:   |   d¡}| jr|  d|¡ d S | jr|  d|¡ d S d S )Nr   )r*   r2   rB   r8   rC   ©r   rE   r   r   r   Ú_end_urlÑ   s   
ÿzNamespace._end_urlc                 C   r;   )NÚemailr   r=   r   r   r   r   Ú_start_emailÚ   r?   zNamespace._start_emailc                 C   sR   |   d¡}| jr|  d|d¡ d S | jr|  d|¡ d S | jr'|  d|¡ d S d S )NrW   r@   )r*   rA   rB   r2   r8   rC   rU   r   r   r   Ú
_end_emailÝ   s   
ÿzNamespace._end_emailc                 C   ó   |   d|dd¡ d S )NÚsubtitleú
text/plainr   ©Úpush_contentr   r   r   r   Ú_start_subtitleæ   ó   zNamespace._start_subtitlec                 C   ó   |   d¡ d S )Nr[   ©Úpop_contentr   r   r   r   Ú_end_subtitleê   ó   zNamespace._end_subtitlec                 C   rZ   )NÚrightsr\   r   r]   r   r   r   r   Ú_start_rightsî   r`   zNamespace._start_rightsc                 C   ra   )Nrf   rb   r   r   r   r   Ú_end_rightsò   re   zNamespace._end_rightsc                 C   sZ   | j  tƒ ¡ |  dd¡ d| _d| _d| _|  |d¡}|r&|  ¡ }||d< |  	|¡ d S )NÚitemr   r   r   z	rdf:aboutÚid)
Úentriesr3   r   r%   r!   Ú
guidislinkr$   Z_get_attributer    r   )r   r   rj   r'   r   r   r   Ú_start_itemö   s   zNamespace._start_itemc                 C   s   |   d¡ d| _d| _d S )Nri   r   )r*   r!   Ú
hasContentr   r   r   r   Ú	_end_item  s   

zNamespace._end_itemc                 C   r;   )NÚlanguager   r=   r   r   r   r   Ú_start_language	  r?   zNamespace._start_languagec                 C   s   |   d¡| _d S )Nrp   )r*   Úlangr   r   r   r   Ú_end_language  r?   zNamespace._end_languagec                 C   r;   )Nr@   r   r=   r   r   r   r   Ú_start_webmaster  r?   zNamespace._start_webmasterc                 C   s   |   d¡ |  d¡ d S )Nr@   )r*   r5   r   r   r   r   Ú_end_webmaster  s   
zNamespace._end_webmasterc                 C   r;   )NÚ	publishedr   r=   r   r   r   r   Ú_start_published  r?   zNamespace._start_publishedc                 C   ó"   |   d¡}| jdt|ƒdd d S )Nrv   Zpublished_parsedT©Ú	overwrite©r*   Ú_saver   rU   r   r   r   Ú_end_published  ó   
zNamespace._end_publishedc                 C   r;   )NÚupdatedr   r=   r   r   r   r   Ú_start_updated!  r?   zNamespace._start_updatedc                 C   s&   |   d¡}t|ƒ}| jd|dd d S )Nr   Zupdated_parsedTry   )r*   r   r|   )r   rE   Zparsed_valuer   r   r   Ú_end_updated&  s   
zNamespace._end_updatedc                 C   r;   )NÚcreatedr   r=   r   r   r   r   Ú_start_created-  r?   zNamespace._start_createdc                 C   rx   )Nr‚   Zcreated_parsedTry   r{   rU   r   r   r   Ú_end_created0  r~   zNamespace._end_createdc                 C   r;   )NÚexpiredr   r=   r   r   r   r   Ú_start_expirationdate4  r?   zNamespace._start_expirationdatec                 C   s   | j dt|  d¡ƒdd d S )NZexpired_parsedr…   Try   )r|   r   r*   r   r   r   r   Ú_end_expirationdate7  s   zNamespace._end_expirationdatec                 C   sD   |  d¡}|  d|  d¡¡}|  d¡}|  |||¡ |  dd¡ d S )NÚtermÚschemeÚdomainÚlabelÚcategoryr   )r
   Ú_add_tagr%   )r   r   rˆ   r‰   r‹   r   r   r   Ú_start_category:  s
   

zNamespace._start_categoryc                 C   s\   |   d¡}|s	d S |  ¡ }|d }|r%t|ƒr%|d d s%||d d< d S |  |d d ¡ d S )NrŒ   Útagsr   rˆ   )r*   r    Úlenr   )r   rE   r'   r   r   r   r   Ú_end_categoryB  s   
zNamespace._end_categoryc                 C   s   t |ƒ|  ¡ d< d S )NÚcloud)r   r    r   r   r   r   Ú_start_cloudN  r`   zNamespace._start_cloudc                 C   sî   |  dd¡ |d dkr|  dd¡ n|  dd¡ |  ¡ }|  |¡}d|v r/|  |d ¡|d< | jp7| jp7| j}|  dg ¡ | jrD| jsM|d  t	|ƒ¡ d|v ro| 
d¡dkrk|  | 
d¡¡| jv rm|d |d	< d S d S d S |  d	|¡ d S )
NÚrelÚ	alternater   Útypezapplication/atom+xmlú	text/htmlr   ÚlinksÚlink)r"   r    Ú_enforce_hrefÚresolve_urir   r!   Úinsourcer#   r3   r   r
   Úmap_content_typeÚ
html_typesr%   )r   r   r'   Zexpecting_textr   r   r   r   Q  s(   
ÿþüzNamespace._start_linkc                 C   ra   )Nr™   )r*   r   r   r   r   r   h  re   zNamespace._end_linkc                 C   s"   |  dd¡dk| _|  dd¡ d S )NZispermalinkÚtruerj   r   )r
   rl   r%   r   r   r   r   Ú_start_guidk  s   zNamespace._start_guidc                 C   s>   |   d¡}|  d| jod|  ¡ v¡ | jr|  d|¡ d S d S )Nrj   rl   r™   )r*   r|   rl   r    rU   r   r   r   Ú	_end_guidp  s
   
ýzNamespace._end_guidc                 C   s<   | j r|  dt| ¡ ƒ¡S |  d|d| jp| jp| j¡ d S )NÚtitler\   )ÚsvgOKZunknown_starttagÚlistÚitemsr^   r   r!   rœ   r   r   r   r   Ú_start_titley  s   "zNamespace._start_titlec                 C   s(   | j rd S |  d¡}|sd S | j| _d S )Nr¢   )r£   rc   Údepthr$   rU   r   r   r   Ú
_end_title~  s   
zNamespace._end_titlec                 C   sL   |   ¡ }d|v r| jsd| _|  |¡ d S |  d|d| jp"| jp"| j¡ d S )NÚsummaryÚcontentÚdescriptionr—   )r    rn   Ú_summaryKeyÚ_start_contentr^   r   r!   rœ   r&   r   r   r   Ú_start_description†  s
   "zNamespace._start_descriptionc                 C   s"   |   d|d| jp| jp| j¡ d S )Nr«   r\   )r^   r   r!   rœ   r   r   r   r   Ú_start_abstractŽ  s   "zNamespace._start_abstractc                 C   s(   | j dkr
|  ¡  n|  d¡ d | _ d S )Nrª   r«   ©r¬   Ú_end_contentrc   r   r   r   r   Ú_end_description‘  s   



zNamespace._end_descriptionc                 C   rZ   )NÚinfor\   r   r]   r   r   r   r   Ú_start_info™  r`   zNamespace._start_infoc                 C   ra   )Nr³   rb   r   r   r   r   Ú	_end_info  re   zNamespace._end_infoc                 C   sH   |r|   |¡}d|v r|  |d ¡|d< t|ƒ|  ¡ d< |  dd¡ d S )Nr   Úgenerator_detailÚ	generatorr   )rš   r›   r   r    r%   r   r   r   r   Ú_start_generator¡  s   
zNamespace._start_generatorc                 C   s.   |   d¡}|  ¡ }d|v r||d d< d S d S )Nr·   r¶   r<   )r*   r    rD   r   r   r   Ú_end_generator©  s
   
ÿzNamespace._end_generatorc                 C   sF   |   ¡ }d|v r| jsd| _|  |¡ d S d| _|  | j|dd¡ d S )Nr©   rª   r\   r   )r    rn   r¬   r­   r^   r&   r   r   r   Ú_start_summary¯  s   zNamespace._start_summaryc                 C   s.   | j dkr
|  ¡  n|  | j pd¡ d | _ d S )Nrª   r©   r°   r   r   r   r   Ú_end_summary¸  s   


zNamespace._end_summaryc                 C   s4   |   |¡}|  ¡ }d|d< | dg ¡ t|ƒ¡ d S )NZ	enclosurer”   r˜   )rš   r    r"   r3   r   r&   r   r   r   Ú_start_enclosure¿  s   
zNamespace._start_enclosurec                 C   s2   d|v r|d | j d< |  dd¡ d| _d| _d S )NÚurlr   Úsourcer   r   )Ú
sourcedatar%   rœ   r$   r   r   r   r   Ú_start_sourceÅ  s
   
zNamespace._start_sourcec                 C   s@   d| _ |  d¡}|r|| jd< t | j¡|  ¡ d< | j ¡  d S )Nr   r¾   r¢   )rœ   r*   r¿   ÚcopyÚdeepcopyr    ÚclearrU   r   r   r   Ú_end_sourceÍ  s   

zNamespace._end_sourcec                 C   s>   d| _ |  d|dd¡ | d¡}|r|| jd< |  dd¡ d S )Nr   rª   r\   Úsrc)rn   r^   r
   Úcontentparamsr%   )r   r   rÅ   r   r   r   r­   Õ  s   

zNamespace._start_contentc                 C   rZ   )Nrª   zapplication/xhtml+xmlr   r]   r   r   r   r   Ú_start_bodyÝ  r`   zNamespace._start_bodyc                 C   s   d| _ |  d|dd¡ d S )Nr   rª   r—   )rn   r^   r   r   r   r   Ú_start_content_encodedá  s   z Namespace._start_content_encodedc                 C   s@   |   | j d¡¡dh| jB v }|  d¡}|r|  d|¡ d S d S )Nr–   r\   rª   r©   )r   rÆ   r
   rž   rc   r|   )r   ZcopyToSummaryrE   r   r   r   r±   æ  s
   
ÿzNamespace._end_contentc                 C   r;   )NÚnewlocationr   r=   r   r   r   r   Ú_start_newlocationñ  r?   zNamespace._start_newlocationc                 C   s8   |   d¡}|  ¡ }|| jurd S t| j| ¡ ƒ|d< d S )NrÉ   )r*   r    Zfeeddatar   ZbaseuriÚstrip)r   r½   r'   r   r   r   Ú_end_newlocationô  s
   

zNamespace._end_newlocationN)mÚ__name__Ú
__module__Ú__qualname__Ú__doc__Zsupported_namespacesr   r   r   r   r   Z	_end_feedr(   r+   r/   Z_start_textInputr0   Z_end_textInputr4   Z_start_managingeditorr6   Z_end_managingeditorr9   r:   r>   rF   rI   rN   rR   rS   rT   Z_start_homepageZ
_start_urirV   Z_end_homepageZ_end_urirX   rY   r_   Z_start_taglinerd   Z_end_taglinerg   Z_start_copyrightrh   Z_end_copyrightrm   Z_start_entryro   Z
_end_entryrq   rs   rt   ru   rw   Z_start_issuedZ_start_pubdater}   Z_end_issuedZ_end_pubdater€   r   Z_start_lastbuilddater   r   Z_end_lastbuilddaterƒ   r„   r†   r‡   rŽ   Z_start_keywordsr‘   Z_end_keywordsr“   r   r   r    Z	_start_idr¡   Z_end_idr¦   r¨   r®   r¯   r²   Z_end_abstractr´   Z!_start_feedburner_browserfriendlyrµ   Z_end_feedburner_browserfriendlyr¸   r¹   rº   r»   r¼   rÀ   rÄ   r­   rÇ   Z_start_xhtml_bodyrÈ   Z_start_fullitemr±   Z	_end_bodyZ_end_xhtml_bodyZ_end_content_encodedZ_end_fullitemrÊ   rÌ   r   r   r   r   r   $   sð    ó


	
	r   )	rÁ   Z	datetimesr   Úurlsr   Úutilr   Úobjectr   r   r   r   r   Ú<module>   s
   