
    !}gr                     |    d dl Z d dlZddlmZ dZ e j        d          Zd Zd Z	ddZ
 G d	 d
e          Zd ZdS )    N   )_BaseHTMLProcessor),fileftpgopherh323hdlhttphttpsimapmagnetmailtommsnewsnntpprosperorsyncrtsprtspusftpshttpsipsipssnewssvnzsvn+sshtelnetwaisaimcalltocvsfacetimefeedgitgtalkircircsirc6itmsr   msnimskypesshsmbr   ymsgz&^([A-Za-z][A-Za-z0-9+-.]*://)(/*)(.*?)c                     t                               d|          }	 t          j                            | |          }n# t
          $ r d}Y nw xY w|S )Nz\1\3 )	_urifixersuburllibparseurljoin
ValueError)baseuris     O/var/www/py-google-trends/myenv/lib/python3.11/site-packages/feedparser/urls.py_urljoinr9   4   s\    
--
%
%Cl""4--   Js    > AAc                    t          t          j                            |                     }	 |d                             d           | S # t
          $ r |d                             dd          }g }d}t          |          dk    r|                                }|d         	                    d          D ]=}|
                    |                    d                              d	                     >d                    |          |d<   |r|dxx         d|z   z  cc<   t          j                            |          cY S w xY w)
zConvert a URL to IDN notationr   ascii:r/      r   .idnazutf-8)listr2   r3   urlsplitencodeUnicodeEncodeErrorrsplitlenpopsplitappenddecodejoin
urlunsplit)urlpartshostnewhostporths         r8   convert_to_idnrR   =   s>   
 &&s++,,Ea    
  . . .QxsA&&t99>>88::Das## 	= 	=ANN188F++227;;<<<<88G$$a 	#!HHHd
"HHH|&&u-----.s   A C6EEc                 d   t           st          | |pd          S | s|pdS |sG	 t          j                            |           d         }n# t
          $ r Y dS w xY w|r	|t           v r| S dS t          | |          }|                                                    dd          d         t           vrdS |S )Nr/   r   r<   r   )ACCEPTABLE_URI_SCHEMESr9   r2   r3   urlparser5   striprG   )r6   relschemer7   s       r8   make_safe_absolute_urirY   V   s    ! )ciR((( yb 	\**4003FF 	 	 	22	 	#999Kr
4

C
yy{{a  #+AAArJs   %A	 	
AAc                   2     e Zd Zh dZd Zd Z fdZ xZS )RelativeURIResolver>   ahrefqcitedelra   imgsrcre   usemapre   longdescinsra   arear^   body
backgroundformactionheadprofilelinkr^   audiorf   framerf   r}   rj   inputrf   r   rh   videorf   r   posterappletcodebaseiframerf   r   rj   objectdatar   rh   r   classidr   r   scriptrf   sourcerf   
blockquotera   c                 @    t          j        | ||           || _        d S N)r   __init__baseuri)selfr   encoding_types       r8   r   zRelativeURIResolver.__init__   s"    #D(E:::    c                 P    t          | j        |                                          S r   )rY   r   rV   )r   r7   s     r8   resolve_urizRelativeURIResolver.resolve_uri   s    %dlCIIKK@@@r   c                                            |          } fd|D             }t          t                                         |           d S )Nc                 ^    g | ])\  }}||fj         v r                    |          p|f*S  )relative_urisr   ).0keyvaluer   tags      r8   
<listcomp>z8RelativeURIResolver.unknown_starttag.<locals>.<listcomp>   sJ    xxxdndgin#c
d&88Ud>N>Nu>U>U^Y^_xxxr   )normalize_attrssuperr[   unknown_starttag)r   r   attrs	__class__s   `` r8   r   z$RelativeURIResolver.unknown_starttag   s\    $$U++xxxxxrwxxx!4((99#uEEEEEr   )__name__
__module____qualname__r   r   r   r   __classcell__)r   s   @r8   r[   r[   j   st          M@  A A AF F F F F F F F Fr   r[   c                 v    t          |||          }|                    |            |                                S r   )r[   r"   output)html_sourcebase_urir   type_ps        r8   resolve_relative_urisr      s3    Hh66AFF;88::r   r   )reurllib.parser2   htmlr   rT   compiler0   r9   rR   rY   r[   r   r   r   r8   <module>r      s   8 
			     $ $ $ $ $ $  BJ?@@	    2   (+F +F +F +F +F, +F +F +F\    r   