
    it&                     
   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	SSK
Jr  SSKJr  Sr " S S\R                  R                   \R                  R"                  \R                  R$                  5      rS rS
S	 jrg)    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                   6    \ rS rSrS rS r\r\r\r\r	S r
Srg)_FeedURLHandler/   c                     X2l         U$ N)status)selfreqfpcodemsgheaderss         </app/mltbenv/lib/python3.13/site-packages/feedparser/http.pyhttp_error_default"_FeedURLHandler.http_error_default0   s     		    c                     [         R                  R                  R                  XX#XE5      nU(       d  U$ X6l        UR                  5       Ul        U$ r
   )urllibrequestHTTPRedirectHandlerhttp_error_301r   geturlnewurl)r   r   r   r   r   hdrsresults          r   r   _FeedURLHandler.http_error_3016   s@    33BB4bX[bIr   c                 $   [         R                  R                  UR                  5       5      S   nSUR                  ;  d  SU;  a  U R                  XX4U5      $ [        R                  " UR                  S   R                  S5      S   R                  5       5      R                  5       nUR                  S5      u  p[        R                  " SUS   5      S   n
U R                  XX5        U R                  SXaU5      nU R                  5         U$ )	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_401_FeedURLHandler.http_error_401F   s     ||$$S%5%5%78;#++-1C71R**3DwGG!!#++o">"D"DS"I!"L"S"S"UV]]_jjo

,g6H.IJ1M%t3**+=t'R r    N)__name__
__module____qualname____firstlineno__r   r   http_error_300http_error_302http_error_303http_error_307r7   __static_attributes__r9   r   r   r   r   /   s'     $N#N#N#Nr   r   c                     [         R                  R                  U 5      nUR                  SU5        U(       a  UR                  SU5        [	        U[
        5      (       a  [        U5      nO/[	        U[        R                  5      (       a  UR                  5       nU(       a@  / SQn	/ SQn
UR                  SSXS      US   XS	   S	-
     US
   US   US   US   4-  5        U(       a  UR                  SU5        UR                  SS5        U(       a  UR                  SSU-  5        U(       a  UR                  SU5        UR                  5        H  u  pUR                  X5        M     UR                  SS5        U$ )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referrerr2   request_headersr   short_weekdaysmonthsheader_nameheader_values                r   _build_urllib2_requestrq   \   s   nn$$S)G|U+?D1(C  x(	Hh//	0	0((*
 Ke.0UYgqrhsYtv~  @A  wB  DJ  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%:%:%<!;5 &=vv&Nr   c           
      <
   Uc  / nO[        U[        5      (       d  U/nUc  0 nU R                  S5      (       a  U SS  n OU R                  S5      (       a  SU SS  -   n U(       d  SSKJn  UnS n	U R                  S5      (       d  [
        R                  R                  U 5      n
U
R                  (       a  [        U
5      nU
R                  US'   U
R                  (       a  U
R                   SU
R                   3US'   [
        R                  R                  U5      n [        R                  " U
R                   SU
R                   3R                  5       5      R!                  5       n	[        U ["        5      (       d  [%        U 5      n / nU  H&  n UR                  S	5        UR'                  U5        M(     S
R-                  U5      n [/        X[0        XXIU5      n[
        R2                  R4                  " [7        U[9        5       /-   5      6 n/ Ul        UR=                  U5      nUR?                  5       nURA                  5         URB                  RE                  5        VVs0 s H  u  nnURG                  5       U_M     snnUS'   U(       aQ  SUS   RI                  SS
5      ;   a8   [J        RL                  " [N        RP                  " U5      S9R?                  5       nO7U(       a0  SUS   RI                  SS
5      ;   a   [Z        R\                  " U5      nSUS   ;   aG  US   RI                  SS
5      n[        U["        5      (       a  UR!                  SS5      nU(       a  XS'   SUS   ;   a.  US   RI                  SS
5      nU(       a  X'S'   [_        U5      US'   [        UR`                  ["        5      (       a   UR`                  R!                  SS5      US'   OUR`                  US'   [c        USS 5      =(       d    SUS'   [c        USS5      S:X  a
  S
US '   S!US"'   U$ ! [(         a3    UR'                  [
        R                  R+                  U5      5         GM  f = fs  snnf ! [R        [T        [V        RX                  4 a6  nSUS'   UUS'   [        U[V        RX                  5      (       a  S n S nAGNS nAff = f! [Z        RX                   aI     [Z        R\                  " US5      n GN! [Z        RX                   a  nSUS'   UUS'    S nA GNS nAff = ff = f)#Nz	feed:httpr[   zfeed:zhttp:r   )
USER_AGENTzftp:r#   ascii r   gzipzcontent-encoding)fileobjTbozobozo_exceptiondeflateiri   zutf-8ignorezlast-modifiedrj   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)2ra   list
startswithru   rs   r   r$   r%   usernamehostnameport
urlunparser'   standard_b64encodepasswordr*   r+   bytesr   appendUnicodeEncodeErrorquotejoinrq   ACCEPT_HEADERr   build_openertupler   
addheadersopenreadcloser   re   lowergetrv   GzipFileioBytesIOEOFErrorIOErrorstructerrorzlib
decompressr   rf   getattr)rf   ri   rj   rg   rk   handlersrl   r   rs   r2   
url_pieces
new_piecesbitscr   openerfdatakves                        r   r   r   |   sy   $'': ~~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PX`opG^^((%O<M;N0N*OPFFGA668DGGI 34))//2CD2C$!QA2CDF9 &+//0BBGG	==D)9:??AD 
)vi0445GLL	-??4(D 	""i $$VR0dE"";;w1D!6N&++)$(("=!):(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+,'((-		-s`   P !Q '6Q& ?R>  8QQ&R;+R66R;>TS--T
TTTT)NNNNNNN)r'   rc   rv   r   r,   r   urllib.parser   urllib.requestr   	datetimesr   urlsr   r   r   HTTPDigestAuthHandlerr   HTTPDefaultErrorHandlerr   rq   r   r9   r   r   <module>r      sv   8    	 	     "  
 S*fnn::FNN<^<^`f`n`n  aG  aG *Z@gr   