
    :V                        d dl mZ dZ	 e n# e$ r dZY nw xY wesdgZd dlZd dlZd dlm	Z	 d dl
mZ d Z G d	 d
e          ZddZd Zd Zedk    r e ed                      e ed                      e ed                      e edd                      e ed                      e ed                      e ed                     dS dS )    )print_functionz0.0.4F
find_feedsN)BeautifulSoup)parsec                     |                                  } |                     d          rd                    | dd                    S dD ]}|                     |          r| c S d                    |           S )Nzfeed://z
http://{0}   )zhttp://zhttps://)strip
startswithformat)urlprotos     K/var/www/py-google-trends/myenv/lib/python3.11/site-packages/feedfinder2.py
coerce_urlr      s    
))++C
~~i   ,""3qrr7+++(  >>%   	JJJ	s###    c                   4    e Zd ZddZd Zd Zd Zd Zd ZdS )	
FeedFinderNc                 L    |d                     t                    }|| _        d S )Nzfeedfinder2/{0})r   __version__
user_agent)selfr   s     r   __init__zFeedFinder.__init__"   s&    *11+>>J$r   c                    	 t          j        |d| j        i          }nf# t          $ rY}t	          j        d                    |                     t	          j        d                    |                     Y d }~d S d }~ww xY w|j        S )Nz
User-Agent)headerszError while getting '{0}'z{0})requestsgetr   	Exceptionloggingwarnr   text)r   r   res       r   get_feedzFeedFinder.get_feed'   s    	S<*IJJJAA 	 	 	L4;;C@@AAALa)))44444	 vs     
BAA>>Bc                     |                                 }|                    d          rdS |                    d          |                    d          z   |                    d          z   S )Nz<htmlFz<rssz<rdfz<feed)lowercount)r   r   datas      r   is_feed_datazFeedFinder.is_feed_data0   s\    zz||::g 	5zz&!!$**V"4"44TZZ5H5HHHr   c                 ^    |                      |          }|dS |                     |          S )NF)r"   r'   )r   r   r   s      r   is_feedzFeedFinder.is_feed6   s1    }}S!!<5  &&&r   c                 n    t          t          |                                j        g d                    S )N)z.rssz.rdf.xmlz.atom)anymapr$   endswithr   r   s     r   is_feed_urlzFeedFinder.is_feed_url<   s6    3syy{{+888: : ; ; 	;r   c                 n    t          t          |                                j        g d                    S )N)rssrdfxmlatomfeed)r,   r-   r$   r%   r/   s     r   is_feedlike_urlzFeedFinder.is_feedlike_url@   s6    3syy{{(<<<> > ? ? 	?r   )N)	__name__
__module____qualname__r   r"   r'   r)   r0   r7    r   r   r   r       sv        % % % %
  I I I' ' '; ; ;? ? ? ? ?r   r   c           
          t          |          }t                      |                               }|g S |                    |          r gS t	          j        d           t          |          }g }|                    d          D ]U}|                    d          dv r<|	                    t          j         |                    dd                               Vt          t          |j        |                    }t	          j        d                    t!          |                               t!          |          r|st#          |          S t	          j        d	           g g }
}	|                    d
          D ]s}|                    dd           }|d|vr*|                    |          r|		                    |           |                    |          r|
	                    |           t fd|	D             }	|t          t          |j        |	                    z  }t	          j        d                    t!          |                               t!          |          r|st#          |          S  fd|
D             }
|t          t          |j        |
                    z  }t	          j        d                    t!          |                               t!          |          r|st#          |          S g d}|t          t          |j         fd|D                                 z  }t#          |          S )N)r   zLooking for <link> tags.linktype)zapplication/rss+xmlztext/xmlzapplication/atom+xmlzapplication/x.atom+xmlzapplication/x-atom+xmlhref zFound {0} feed <link> tags.zLooking for <a> tags.az://c                 :    g | ]}t          j        |          S r;   urlparseurljoin.0lr   s     r   
<listcomp>zfind_feeds.<locals>.<listcomp>s   s&    555!Xc1%%555r   z#Found {0} local <a> links to feeds.c                 :    g | ]}t          j        |          S r;   rC   rF   s     r   rI   zfind_feeds.<locals>.<listcomp>z   s&    7771hsA&&777r   z$Found {0} remote <a> links to feeds.)zatom.xmlz
index.atomz	index.rdfzrss.xmlz	index.xmlz	index.rssc                 :    g | ]}t          j        |          S r;   rC   )rG   fr   s     r   rI   zfind_feeds.<locals>.<listcomp>   s6     )7 )7 )7-. *2)9#q)A)A )7 )7 )7r   )r   r   r"   r'   r   infor   find_allr   appendrD   rE   listfilterr)   r   len	sort_urlsr0   r7   )r   	check_allr   finderr   treelinksr=   urlslocalremoterA   r?   fnss   `             r   r   r   E   s_   :...F S//C ??3D|	 4   u L+,,,DEf%% F F88F  : : :
 LL)#txx/C/CDDEEE v~u--..DL.55c$ii@@AAA
4yy   L()))6E]]3    uuVT""<!3!3D!9!9LL!!$'' 	 MM$ 6555u555ED..///DL6==c$iiHHIII
4yy   8777777FD//000DL7>>s4yyIIJJJ
4yy    CD )7 )7 )7 )725)7 )7 )7 8 8 9 9 9DT??r   c                     d| v rdS d| v rdS g d}t          t          t          |          dd          |          D ]\  }}|| v r|c S dS )Ncommentsgeorss)r5   r2   r3   r+   r6   r   )ziprangerR   )r   kwpts       r   url_feed_probrf      sv    Sr3r	/	/	/BE#b''1b))2..  188HHH 1r   c                 d    t          t          t          |                     t          d          S )NT)keyreverse)sortedrP   setrf   )feedss    r   rS   rS      s%    $s5zz""tDDDDr   __main__z"www.preposterousuniverse.com/blog/zhttp://xkcd.comzdan.iel.fm/atom.xmlz
dan.iel.fmT)rT   zkapadia.github.iozblog.jonathansick.caasdasd)FN)
__future__r   r   __FEEDFINDER2_SETUP__	NameError__all__r   r   bs4r   six.moves.urllibr   rD   r   objectr   r   rf   rS   r8   printr;   r   r   <module>rw      s   & % % % % %" " " "!"  3nGNNNOOO!!!!!!222222$ $ $"? "? "? "? "? "? "? "?J@ @ @ @F	 	 	E E E z	E**9
:
:;;;	E**&
'
'(((	E***
+
+,,,	E**\T
2
2
2333	E**(
)
)***	E**+
,
,---	E**X

 s    