
    #Pcj>                         S r SSKJr  SSKJrJr  SSKJrJr  SSKJ	r	  SSK
r
SSKrS\4S jrS	\S\\   4S
 jrSS\\\   \4   4S jjrg)ut   RSS через feedparser (сетевой вызов с таймаутом, потом парсинг байтов).    )timegm)datetimetimezone)ListTuple)urlparseNreturnc                     S HW  nU R                  U5      nU(       d  M  [        R                  " [        U5      [        R
                  S9R                  5       s  $    g)N)published_parsedupdated_parsed)tz )getr   fromtimestampr   r   utc	isoformat)ekeyts      '/home/rasp/mars-trendwatch/fetch_rss.py_entry_dater      sG    5EE#J1))&)EOOQQ 6     feed_urlc                    [        U 5      R                  R                  SS5      n/ nUR                   H  nUR	                  S5      =(       d2    UR	                  S5      =(       d    UR	                  S5      =(       d    SnU(       d  MV  UR                  U UUUR	                  SS5      UR	                  SS5      [        U5      UR	                  SS5      S.5        M     U$ )Nzwww.r   idlinktitlesummary)r   sourceentry_idr   r   	publishedr   )r   netlocreplaceentriesr   appendr   )r   parsedr   outr   r    s         r   entries_from_parsedr(      s    h&&..vr:F
C^^55;G!%%-G155>GR

  UU7B'EE&"%$QuuY+
 		  Jr   c                 >   U=(       d    [         n/ 0 pCU  HT  n UR                  USSS0S9nUR                  5         U[        U[        R
                  " UR                  5      5      -  nMV     X44$ ! [         R                   a  n[        U5      XE'    S nAM  S nAff = f)N   z
User-Agentzmars-trendwatch/1.0)timeoutheaders)	requestsr   raise_for_statusr(   
feedparserparsecontentRequestExceptionstr)feedssessionhttprecordserrorsurlrespexcs           r   fetch_feedsr<   '   s    hD"V	#88ClDY5Z8[D!!#*3
0@0@0NOOG	  ? (( 	#c(FK	#s   AA00BBB)N)__doc__calendarr   r   r   typingr   r   urllib.parser   r/   r-   r3   r   dictr(   r<    r   r   <module>rC      sW    z  '  !  c # $t* &
d4j$.>(? 
r   