
    gt&                        d dl Z d dlZd dlZd dlZd dlZd dlZd dl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j                  j                   ej                  j"                  ej                  j$                        Zd Zd
d	Zy)    N   )_parse_date)convert_to_idnzapplication/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1c                   .    e Zd Zd Zd ZeZeZeZeZd Z	y)_FeedURLHandlerc                     ||_         |S N)status)selfreqfpcodemsgheaderss         B/var/www/html/venv/lib/python3.12/site-packages/feedparser/http.pyhttp_error_defaultz"_FeedURLHandler.http_error_default0   s     		    c                     t         j                  j                  j                  | |||||      }|s|S ||_        |j                         |_        |S r	   )urllibrequestHTTPRedirectHandlerhttp_error_301r
   geturlnewurl)r   r   r   r   r   hdrsresults          r   r   z_FeedURLHandler.http_error_3016   sJ    33BB4bRVX[]abIr   c                 $   t         j                  j                  |j                               d   }d|j                  vsd|vr| j                  |||||      S t        j                  |j                  d   j                  d      d   j                               j                         }|j                  d      \  }}	t        j                  d|d         d   }
| j                  |
|||	       | j                  d|||      }| j                          |S )	Nr   AuthorizationzWWW-Authenticate :zrealm="([^"]*)"r   zwww-authenticate)r   parseurlparseget_full_urlr   r   base64decodebytessplitencodedecoderefindalladd_passwordhttp_error_auth_reqedreset_retry_count)r   r   r   r   r   r   hostauthuserpasswrealmretrys               r   http_error_401z_FeedURLHandler.http_error_401F   s     ||$$S%5%5%78;#++-1C71R**3D#wGG!!#++o">"D"DS"I!"L"S"S"UV]]_jjoe

,g6H.IJ1M%tU3**+=tS'R r   N)
__name__
__module____qualname__r   r   http_error_300http_error_302http_error_303http_error_307r4    r   r   r   r   /   s'     $N#N#N#Nr   r   c                    t         j                  j                  |       }|j                  d|       |r|j                  d|       t	        |t
              rt        |      }n*t	        |t        j                        r|j                         }|rBg d}	g d}
|j                  dd|	|d      |d   |
|d	   d	z
     |d
   |d   |d   |d   fz         |r|j                  d|       |j                  dd       |r|j                  dd|z         |r|j                  d|       |j                         D ]  \  }}|j                  ||        |j                  dd       |S )Nz
User-AgentzIf-None-Match)MonTueWedThuFriSatSun)JanFebMarAprMayJunJulAugSepOctNovDeczIf-Modified-Sincez#%s, %02d %s %04d %02d:%02d:%02d GMT      r   r            RefererzAccept-encodingzgzip, deflater   zBasic %sAcceptzA-IMfeed)
r   r   Request
add_header
isinstancestrr   datetimeutctimetupleitems)urlagentaccept_headeretagmodifiedreferrerr/   request_headersr   short_weekdaysmonthsheader_nameheader_values                r   _build_urllib2_requestrk   \   s   nn$$S)G|U+?D1(C x(	Hh//	0((*
 Ke.0UYghpqrhsYtv~  @A  wB  DJ  KS  TU  KV  YZ  KZ  D[  ]e  fg  ]h  jr  st  ju  w  @A  wB  DL  MN  DO  YP  1P  	Q9h/(/:?J,=>8]3 &5%:%:%< 6!\;56vv&Nr   c           
      t	   |g }nt        |t              s|g}|i }| j                  d      r| dd  } n| j                  d      rd| dd  z   } |sddlm} |}d }	| j                  d      st
        j                  j                  |       }
|
j                  rt        |
      }|
j                  |d<   |
j                  r|
j                   d|
j                   |d<   t
        j                  j                  |      } t        j                  |
j                   d|
j                   j                               j!                         }	t        | t"              st%        |       } g }| D ]%  }	 |j                  d	       |j'                  |       ' d
j-                  |      } t/        | |t0        ||||	|      }t        j2                  j4                  t7        |t9               gz          }g |_        |j=                  |      }|j?                         }|jA                          |jB                  jE                         D ci c]  \  }}|jG                         | c}}|d<   |rPd|d   jI                  dd
      v r9	 tK        jL                  tO        jP                  |            j?                         }n/|r-d|d   jI                  dd
      v r	 t[        j\                  |      }d|d   v r>|d   jI                  dd
      }t        |t"              r|j!                  dd      }|r||d<   d|d   v r*|d   jI                  dd
      }|r||d<   t_        |      |d<   t        |j`                  t"              r |j`                  j!                  dd      |d<   n|j`                  |d<   tc        |dd       xs d|d<   tc        |dd      dk(  r
d
|d <   d!|d"<   |S # t(        $ r2 |j'                  t
        j                  j+                  |             Y w xY wc c}}w # tR        tT        tV        jX                  f$ r1}d|d<   ||d<   t        |tV        jX                        rd }Y d }~}d }~ww xY w# tZ        jX                  $ rF 	 t[        j\                  |d      }n*# tZ        jX                  $ r}d|d<   ||d<   Y d }~nd }~ww xY wY w xY w)#Nz	feed:httprU   zfeed:zhttp:r   )
USER_AGENTzftp:r    ascii r   gzipzcontent-encoding)fileobjTbozobozo_exceptiondeflateirc   zutf-8ignorezlast-modifiedrd   modified_parsedhrefr
      r   r   i0  versionzkThe feed has not changed since you last checked, so the server sent no data.  This is a feature, not a bug!debug_message)2r[   list
startswithro   rm   r   r!   r"   usernamehostnameport
urlunparser$   standard_b64encodepasswordr'   r(   bytesr   appendUnicodeEncodeErrorquotejoinrk   ACCEPT_HEADERr   build_openertupler   
addheadersopenreadcloser   r_   lowergetrp   GzipFileioBytesIOEOFErrorIOErrorstructerrorzlib
decompressr   r`   getattr)r`   rc   rd   ra   re   handlersrf   r   rm   r/   
url_pieces
new_piecesbitscr   openerfdatakves                        r   r   r   |   se   $': ~~k"!"g		 AB D>>&!\\**3/
j)J&//JqM#-#6#6"7q8I J
1,,))*5C,,
0C0C/DAjFYFYEZ-[-b-b-dellnD c5!S! D 	HHW KKN ''$-C %S%hPXZ^`opG^^((%O<M;N0N*OPFFGA668DGGI 34))//2CD$!QADF9 &+//0BBGG	==D)9:??AD 
)vi0445GLL	-??4(D 	""i $$VR0dE";;w1D!F6N&++)$(("=!)F:(3H(=F$%!%%gx8vvq(D18SF8 q&!#y#I KE " 	/KK**1-.	/ E '6<<0 		 "F6N'(F#$!V\\* 		 zz 	--tS1:: -!%v+,'(-		-sl   %O6P27P Q 7PPQ*&QQR72R	R7	R0
R+&R7+R00R76R7)NNNNNNN)r$   r]   rp   r   r)   r   urllib.parser   urllib.requestr   	datetimesr   urlsr   r   r   HTTPDigestAuthHandlerr   HTTPDefaultErrorHandlerr   rk   r   r<   r   r   <module>r      sv   8    	 	     "  
 S*fnn::FNN<^<^`f`n`n  aG  aG *Z@gr   