o
    .jB                     @   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`dd Zadd ZbebZcdd ZdedZedd ZfefZgefZhefZiefZjdd Zkdd ZldS )	NamespacezSupport 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 )Nrss091urss092rss093rss094)z0.91z0.92z0.93z0.94rssversionr   z2.rss20)r   
startswithgetselfattrs_d
versionmapattr_versionr    r   P/home/thesage/.local/lib/python3.10/site-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 )Nlastmodhref)_start_modified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   atom01atom02atom03)z0.1z0.2z0.3r   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   )popr1   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.   r0   r   intextinputr2   r3   r4   r   r   r   _start_textinput|   s
   zNamespace._start_textinputc                 C   r7   )Nr;   r   )r8   r<   r+   r   r   r   _end_textinput   r:   zNamespace._end_textinputc                 C   s:   d| _ | dd |  }|dg  |d t  d S )Nr   authorauthors)inauthorr3   r.   r0   appendr   r4   r   r   r   _start_author   s
   zNamespace._start_authorc                 C   s   |  d d| _|   d S )Nr?   r   )r8   rA   _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   contributorscontributorr   )incontributorr.   r0   rB   r   r3   r4   r   r   r   _start_contributor   s
   zNamespace._start_contributorc                 C   r7   )NrG   r   )r8   rH   r+   r   r   r   _end_contributor   r:   zNamespace._end_contributorc                 C      |  dd d S )Nnamer   r3   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 )NrL   	publisher)r8   inpublisher_save_authorrA   rH   _save_contributorr<   r.   r   valuer5   r   r   r   	_end_name   s   
zNamespace._end_namec                 C   rK   Nwidthr   rM   r   r   r   r   _start_width   rO   zNamespace._start_widthc                 C   L   |  d}zt|}W n ty   d}Y nw | jr$|  }||d< d S d S rW   r8   int
ValueErrorr1   r.   rT   r   r   r   
_end_width      
zNamespace._end_widthc                 C   rK   Nheightr   rM   r   r   r   r   _start_height   rO   zNamespace._start_heightc                 C   rZ   r`   r[   rT   r   r   r   _end_height   r_   zNamespace._end_heightc                 C   rK   )Nr    r   rM   r   r   r   r   
_start_url   rO   zNamespace._start_urlc                 C   s:   |  d}| jr| d| d S | jr| d| d S d S )Nr    )r8   rA   rR   rH   rS   r   rU   r   r   r   _end_url   s   
zNamespace._end_urlc                 C   rK   )Nemailr   rM   r   r   r   r   _start_email   rO   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 )Nrg   rP   )r8   rQ   rR   rA   rH   rS   re   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 )Nrk   pop_contentr+   r   r   r   _end_subtitle      zNamespace._end_subtitlec                 C   rj   )Nrightsrl   r   rm   r   r   r   r   _start_rights   rp   zNamespace._start_rightsc                 C   rq   )Nrv   rr   r+   r   r   r   _end_rights   ru   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)
entriesrB   r   r3   r/   
guidislinkr2   _get_attributer.   r   )r   r   rz   r5   r   r   r   _start_item   s   zNamespace._start_itemc                 C   s   |  d d| _d| _d S )Nry   r   )r8   r/   
hasContentr+   r   r   r   	_end_item  s   

zNamespace._end_itemc                 C   rK   )Nlanguager   rM   r   r   r   r   _start_language	  rO   zNamespace._start_languagec                 C   s   |  d| _d S )Nr   )r8   langr+   r   r   r   _end_language  rO   zNamespace._end_languagec                 C   rK   )NrP   r   rM   r   r   r   r   _start_webmaster  rO   zNamespace._start_webmasterc                 C   s   |  d | d d S )NrP   )r8   rD   r+   r   r   r   _end_webmaster  s   
zNamespace._end_webmasterc                 C   rK   )N	publishedr   rM   r   r   r   r   _start_published  rO   zNamespace._start_publishedc                 C   "   |  d}| jdt|dd d S )Nr   published_parsedT	overwriter8   _saver   re   r   r   r   _end_published     
zNamespace._end_publishedc                 C   rK   )Nupdatedr   rM   r   r   r   r   _start_updated!  rO   zNamespace._start_updatedc                 C   s&   |  d}t|}| jd|dd d S )Nr   updated_parsedTr   )r8   r   r   )r   rU   parsed_valuer   r   r   _end_updated&  s   
zNamespace._end_updatedc                 C   rK   )Ncreatedr   rM   r   r   r   r   _start_created-  rO   zNamespace._start_createdc                 C   r   )Nr   created_parsedTr   r   re   r   r   r   _end_created0  r   zNamespace._end_createdc                 C   rK   )Nexpiredr   rM   r   r   r   r   _start_expirationdate4  rO   zNamespace._start_expirationdatec                 C   s   | j dt| ddd d S )Nexpired_parsedr   Tr   )r   r   r8   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_tagr3   )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   )r8   r.   lenr   )r   rU   r5   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  rp   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)r0   r.   _enforce_hrefresolve_urir   r/   insourcer1   rB   r   r   map_content_type
html_typesr3   )r   r   r5   expecting_textr   r   r   r$   Q  s&   
zNamespace._start_linkc                 C   rq   )Nr   )r8   r+   r   r   r   r%   h  ru   zNamespace._end_linkc                 C   s"   | dddk| _| dd d S )Nispermalinktruerz   r   )r   r|   r3   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 )Nrz   r|   r   )r8   r   r|   r.   re   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titlerl   )svgOKunknown_starttaglistitemsrn   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   rs   depthr2   re   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.   r   _summaryKey_start_contentrn   r   r/   r   r4   r   r   r   _start_description  s
   "zNamespace._start_descriptionc                 C   s"   |  d|d| jp| jp| j d S )Nr   rl   )rn   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_contentrs   r+   r   r   r   _end_description  s   



zNamespace._end_descriptionc                 C   rj   )Ninforl   r   rm   r   r   r   r   _start_info  rp   zNamespace._start_infoc                 C   rq   )Nr   rr   r+   r   r   r   	_end_info  ru   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.   r3   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   rL   )r8   r.   rT   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   rl   r   )r.   r   r   r   rn   r4   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 )N	enclosurer   r   )r   r.   r0   rB   r   r4   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   )
sourcedatar3   r   r2   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   r8   r   copydeepcopyr.   clearre   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   rl   src)r   rn   r   contentparamsr3   )r   r   r   r   r   r   r     s   

zNamespace._start_contentc                 C   rj   )Nr   zapplication/xhtml+xmlr   rm   r   r   r   r   _start_body  rp   zNamespace._start_bodyc                 C   s   d| _ | d|dd d S )Nr   r   r   )r   rn   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   rl   r   r   )r   r   r   r   rs   r   )r   copyToSummaryrU   r   r   r   r     s
   
zNamespace._end_contentc                 C   rK   )Nnewlocationr   rM   r   r   r   r   _start_newlocation  rO   zNamespace._start_newlocationc                 C   s8   |  d}|  }|| jurd S t| j| |d< d S )Nr   )r8   r.   feeddatar   baseuristrip)r   r   r5   r   r   r   _end_newlocation  s
   

zNamespace._end_newlocationN)m__name__
__module____qualname____doc__supported_namespacesr   r   r   r*   r,   	_end_feedr6   r9   r=   _start_textInputr>   _end_textInputrC   _start_managingeditorrE   _end_managingeditorrI   rJ   rN   rV   rY   r^   rb   rc   rd   _start_homepage
_start_urirf   _end_homepage_end_urirh   ri   ro   _start_taglinert   _end_taglinerw   _start_copyrightrx   _end_copyrightr~   _start_entryr   
_end_entryr   r   r   r   r   _start_issued_start_pubdater   _end_issued_end_pubdater   r!   _start_lastbuilddater   r#   _end_lastbuilddater   r   r   r   r   _start_keywordsr   _end_keywordsr   r$   r%   r   	_start_idr   _end_idr   r   r   r   r   _end_abstractr   !_start_feedburner_browserfriendlyr   _end_feedburner_browserfriendlyr   r   r   r   r   r   r   r   r   _start_xhtml_bodyr   _start_fullitemr   	_end_body_end_xhtml_body_end_content_encoded_end_fullitemr   r   r   r   r   r   r   $   s    


	
	r   )	r   	datetimesr   urlsr   utilr   objectr   r   r   r   r   <module>   s
   