
    VGh=                    0   d dl m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mZmZ ddlmZmZmZ ddlmZmZ e ed      e ed       ed	 ej.                  j1                  d
      D              Zedk  rej.                   de_         ed      ej6                  dk  rej.                   de_         ed      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"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m2Z7 ddgZ8ee8js                  d       	  G d d      Z:d dl;Z e<ejz                  j|                  d      r@ e:ejz                  j|                  j~                        ejz                  j|                  _?        nw e<ejz                  j|                  d      r@ e:ejz                  j|                  j                        ejz                  j|                  _@        n e	j                  d e       z          	 edk  rG ej                  eC      5  dxejz                  _D        ejz                  j                  _D        ddd       eej                  _         G d d e+      ZG G d! d"ej                  j                        ZI G d# d$ej                  j                        ZL G d% d&ej                        ZN G d' d(ej                        ZPe- G d) d*e*e"             ZQ e,eQ      d+        ZR G d, d-ej                  j                        ZU G d. d/eUej                  j                        ZW G d0 d1ej                        ZY G d2 d3ej                        Z[ G d4 d5ej                        Z]e]ej                  _^        y# 1 sw Y   =xY w)6    )annotationsN   )brotlirequestsurllib3)bug_reports_messageint_or_nonevariadic)normalize_urlselect_proxyz requests module is not installedzurllib3 module is not installedc              #  6   K   | ]  }t        |d         yw)r   )defaultN)r	   ).0xs     d/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/networking/_requests.py	<genexpr>r      s     ZaAq11Zs   .)         z (unsupported)z$Only urllib3 >= 1.26.17 is supportedi2 z$Only requests >= 2.32.2 is supportedr   )InstanceStoreMixinadd_accept_encoding_headercreate_connectioncreate_socks_proxy_socketget_redirect_methodmake_socks_proxy_opts)FeaturesRequestHandlerResponseregister_preferenceregister_rh)CertificateVerifyError	HTTPErrorIncompleteRead
ProxyErrorRequestErrorSSLErrorTransportError)r%   gzipdeflatebrc                       e Zd ZddZd Zd Zy)Urllib3PercentREOverridec                    || _         y N)re)selfrs     r   __init__z!Urllib3PercentREOverride.__init__Y   s	        c                8    | j                   j                  |      S r/   )r0   __getattribute__)r1   items     r   __getattr__z$Urllib3PercentREOverride.__getattr__]   s    ww''--r4   c                N    | | j                   j                  ||g|i |d   fS )Nr   )r0   subn)r1   replstringargskwargss        r   r:   zUrllib3PercentREOverride.subn`   s-    |tww||D&B4B6B1EEEr4   N)r2   z
re.Pattern)__name__
__module____qualname__r3   r8   r:    r4   r   r-   r-   X   s    .Fr4   r-   
PERCENT_RE_PERCENT_REzAFailed to patch PERCENT_RE in urllib3 (does the attribute exist?))r   r   r   Tc                  *     e Zd Zd fdZdddZ xZS )RequestsResponseAdapterc                    t         |   |j                  |j                  |j                  |j
                  |j                         || _        y )N)fpheadersurlstatusreason)superr3   rawrI   rJ   status_coderL   _requests_response)r1   res	__class__s     r   r3   z RequestsResponseAdapter.__init__   s?    ww??3:: 	 	7 #&r4   c                ~   	 | j                   j                  |d      S # t        j                  j                  $ r}t	        |      |d }~wt        j                  j
                  $ r}t        d |j                  |j                  gt        |j                        D        d       }|St        |j                  t              r|j                  nt        |j                        }t        ||j                         |t#        |      |d }~wt        j                  j$                  $ r}t#        |      |d }~ww xY w)NT)decode_contentcausec              3  h   K   | ]*  }t        |t        j                  j                        r| , y wr/   )
isinstancehttpclientr$   )r   errs     r   r   z/RequestsResponseAdapter.read.<locals>.<genexpr>   s-      AsDKK$>$>?  As   02)partialexpected)rH   readr   
exceptionsr'   ProtocolErrornext__context__	__cause__r
   r=   rX   r\   intlenr$   r]   r(   r#   )r1   amteir_errr\   s        r   r^   zRequestsResponseAdapter.read   s	   	177<<D<99 !!** 	+#*!!// 	1 A Ohqvv>N O ABFHF ! -7v~~s,K&..QTU[UcUcQd$WvOUVV q)q0!!++ 	1 q)q0	1s-    D<A		 D<)B!D

 D<*D77D<)rQ   zrequests.models.Responser/   )rf   z
int | None)r?   r@   rA   r3   r^   __classcell__rR   s   @r   rF   rF      s    &1 1r4   rF   c                  B     e Zd Zd fd	Z fdZ fdZd ZddZ xZS )RequestsHTTPAdapterc                    i | _         |r|| j                   d<   |r|df| j                   d<   |xs || _        t        |   di | y )Nssl_contextr   source_addressrB   )_pm_args_proxy_ssl_contextrM   r3   )r1   rn   proxy_ssl_contextro   r>   rR   s        r   r3   zRequestsHTTPAdapter.__init__   sO    +6DMM-(/=q.ADMM*+"3"B{"6"r4   c                :    t        |   |i || j                  S r/   )rM   init_poolmanagerrp   )r1   r=   r>   rR   s      r   rt   z$RequestsHTTPAdapter.init_poolmanager   s!    w'II4==IIr4   c                    i }|j                         j                  d      s| j                  r| j                  |d<   t        |   |fi || j
                  |S )Nsocksrr   )lower
startswithrq   rM   proxy_manager_forrp   )r1   proxyproxy_kwargsextra_kwargsrR   s       r   ry   z%RequestsHTTPAdapter.proxy_manager_for   sY    {{}''0T5L5L040G0GL,-w(`,`$--`S_``r4   c                      y r/   rB   )r=   r>   s     r   cert_verifyzRequestsHTTPAdapter.cert_verify   s    r4   c                    t         j                  j                  |j                        j                  }| j                  }t        ||      x}r| j                  |      }|j                  |      S r/   )r   util	parse_urlrJ   poolmanagerr   ry   connection_from_url)r1   requestverifyproxiescertrJ   managerrz   s           r   get_connection_with_tls_contextz3RequestsHTTPAdapter.get_connection_with_tls_context   s^    ll$$W[[155"" g..5.,,U3G**3//r4   )NNN)NN)	r?   r@   rA   r3   rt   ry   r~   r   ri   rj   s   @r   rl   rl      s    #Ja0r4   rl   c                  (     e Zd ZdZd Z fdZ xZS )RequestsSessionzS
    Ensure unified redirect method handling with our urllib redirect handler.
    c                    t        |j                  |j                        }||j                  k(  r|j                  |_        d|_        ||_        t	        |j
                        |_        y )Ni4  )r   methodrO   _real_status_coder   rJ   )r1   prepared_requestresponse
new_methods       r   rebuild_methodzRequestsSession.rebuild_method   sb    ()9)@)@(BVBVW
 )000)1)=)=H&#&H ",  --=-A-ABr4   c                b    t        |d      r|j                  |_        |`t        |   ||      S )Nr   )hasattrr   rO   rM   rebuild_auth)r1   r   r   rR   s      r   r   zRequestsSession.rebuild_auth   s7     801#+#=#=H *w#$4h??r4   )r?   r@   rA   __doc__r   r   ri   rj   s   @r   r   r      s    C@ @r4   r   c                      e Zd Zd Zy)Urllib3LoggingFilterc                     |j                   dk7  S )Nz%s://%s:%s "%s %s %s" %s %s)msg)r1   records     r   filterzUrllib3LoggingFilter.filter   s    zz:::r4   N)r?   r@   rA   r   rB   r4   r   r   r      s    ;r4   r   c                  (     e Zd ZdZ fdZd Z xZS )Urllib3LoggingHandlerz#Redirect urllib3 logs to our loggerc                2    t        |   |i | || _        y r/   )rM   r3   _logger)r1   loggerr=   r>   rR   s       r   r3   zUrllib3LoggingHandler.__init__   s    $)&)r4   c                   	 | j                  |      }|j                  t        j                  k\  r| j                  j                  |       y | j                  j                  |       y # t        $ r | j                  |       Y y w xY wr/   )	formatlevelnologgingERRORr   errorstdout	ExceptionhandleError)r1   r   r   s      r   emitzUrllib3LoggingHandler.emit   sf    	%++f%C~~.""3'##C( 	%V$	%s   A	A( A( (BB)r?   r@   rA   r   r3   r   ri   rj   s   @r   r   r      s    -	%r4   r   c                       e Zd ZdZdZ ee      ZdZe	j                  e	j                  fZdZ fdZd Z fdZddZd	 Zd
 Z xZS )
RequestsRHz@Requests RequestHandler
    https://github.com/psf/requests
    rY   https)rY   r   socks4socks4asocks5socks5hr   c                   t        |   |i | t        j                  d      }t	        | j
                        | _        | j                  j                  t        j                  d             | j                  j                  t                      |j                  | j                         |j                  t        j                         | j                  r>dt        j                   j"                  _        |j                  t        j&                         t        j(                  t        j*                  j,                         y )Nr   )r   zrequests: %(message)sr   )rM   r3   r   	getLoggerr   r   _RequestsRH__logging_handlersetFormatter	Formatter	addFilterr   
addHandlersetLevelr   verboser   
connectionHTTPConnection
debuglevelDEBUGdisable_warningsr_   InsecureRequestWarning)r1   r=   r>   r   rR   s       r   r3   zRequestsRH.__init__  s    $)&) ""9-!6dll!K++G,=,=>U,VW(()=)?@$001&<< <=G--8OOGMM*  !3!3!J!JKr4   c                    | j                          t        j                  d      j                  | j                         y )Nr   )_clear_instancesr   r   removeHandlerr   )r1   s    r   closezRequestsRH.close!  s/     	)$2243I3IJr4   c                    t         |   |       |j                  dd        |j                  dd        |j                  dd        |j                  dd        y )N	cookiejartimeout
legacy_sslkeep_header_casing)rM   _check_extensionspop)r1   
extensionsrR   s     r   r   zRequestsRH._check_extensions'  sI    !*-{D)y$'|T*+T2r4   c                   t               }t        | j                  |      | j                  t        j
                  j                  j                  d            }|j                  j                          t        j                  j                  ddi      |_        |j                  d|       |j                  d|       ||_        d|_        |S )N)legacy_ssl_supportF)rn   ro   max_retries
Connectionz
keep-alivezhttps://zhttp://)r   rl   _make_sslcontextro   r   r   retryRetryadaptersclearr   modelsCaseInsensitiveDictrI   mountcookies	trust_env)r1   r   r   sessionhttp_adapters        r   _create_instancezRequestsRH._create_instance.  s    !#*--AS-T..**007

 	 "//==|\>Z[j,/i.#!r4   c                $    t        |t               y r/   )r   SUPPORTED_ENCODINGS)r1   _rI   s      r   _prepare_headerszRequestsRH._prepare_headers=  s    "7,?@r4   c           
     F   | j                  |      }d}| j                  | j                  |      |j                  j	                  d            }	 |j                  |j                  |j                  |j                  || j                  |      | j                  |      dd      }t5        |      }d|j6                  cxk  rd	k  sn t/        ||
      |S # t        j                  j                  $ r}d}|j                  }Y d }~ad }~wt        j                  j                  $ r,}dt!        |      v rt#        |      |t        |      |d }~wt        j                  j$                  $ r}t%        |      |d }~wt        j                  j&                  t        j                  j(                  f$ r}t+        |      |d }~wt,        j                  j.                  $ r}t+        |      |d }~wt        j                  j0                  $ r}t3        |      |d }~ww xY w)NFr   )r   r   T)r   rJ   datarI   r   r   allow_redirectsstreamCERTIFICATE_VERIFY_FAILEDrU      i,  )redirect_loop)_get_headers_get_instance_get_cookiejarr   getr   r   rJ   r   _calculate_timeout_get_proxiesr   r_   TooManyRedirectsr   r'   strr"   r%   ConnectionErrorTimeoutr(   r   r#   RequestExceptionr&   rF   rK   )r1   r   rI   max_redirects_exceededr   requests_resrg   rQ   s           r   _sendzRequestsRH._send@  s   ##G,!&$$))'2&1155lC % 

!	/"??~~KK\\//8))'2 $ + 	LD &l3cjj&3&C/EFF
9 ""33 	&%)"::L""++ 	+*c!f4,151<#*""-- 	-1%1,##33X5H5H5P5PQ 	1 q)q0!!++ 	1 q)q0""33 	/Q'Q.	/sU   AC H 3D H &'E H -E:::H 4G H !G.. H HH r/   )r?   r@   rA   r   _SUPPORTED_URL_SCHEMEStupler   _SUPPORTED_ENCODINGS_SUPPORTED_PROXY_SCHEMESr   NO_PROXY	ALL_PROXY_SUPPORTED_FEATURESRH_NAMEr3   r   r   r   r   r   ri   rj   s   @r   r   r      s_     / !45Z#,,h.@.@AGL*K3A2r4   r   c                     y)Nd   rB   )rhr   s     r   requests_preferencer  u  s    r4   c                  $     e Zd Z fdZd Z xZS )SocksHTTPConnectionc                2    || _         t        |   |i | y r/   )_proxy_argsrM   r3   )r1   _socks_optionsr=   r>   rR   s       r   r3   zSocksHTTPConnection.__init__|  s    )$)&)r4   c           
     z   	 t        | j                  d   | j                  d   f| j                  | j                  t	        j
                  t        | j                  | j                  f| j                              S # t        j                  t        f$ rA}t        j                  j                  | d| j                   d| j                   d      |d }~wt        $ r/}t        j                  j                  t!        |      |      |d }~wt"        $ r)}t        j                  j%                  | d|       |d }~ww xY w)Naddrport)addressr   ro   _create_socket_funczConnection to z timed out. (connect timeout=)z&Failed to establish a new connection: )r   r  r   ro   	functoolsr\   r   hostr  socketTimeoutErrorr   r_   ConnectTimeoutErrorSocksProxyErrorr%   r   OSErrorNewConnectionError)r1   rg   s     r   	_new_connzSocksHTTPConnection._new_conn  s%   	K$))&143C3CF3KL#22$-$5$5-		499/EtGWGW%Y	Z Z - 	g$$88tyyk1Nt||n\]^`efg 	B$$//A:A 	K$$77>qcBDIJK	Ks0   A7A: :D:<CD:*DD:$D55D:)r?   r@   rA   r3   r  ri   rj   s   @r   r  r  {  s    *Kr4   r  c                      e Zd Zy)SocksHTTPSConnectionN)r?   r@   rA   rB   r4   r   r  r    s    r4   r  c                      e Zd ZeZy)SocksHTTPConnectionPoolN)r?   r@   rA   r  ConnectionClsrB   r4   r   r  r    s    'Mr4   r  c                      e Zd ZeZy)SocksHTTPSConnectionPoolN)r?   r@   rA   r  r  rB   r4   r   r  r    s    (Mr4   r  c                        e Zd Zd fd	Z xZS )SocksProxyManagerc                h    t        |      |d<   t        |   ||fi | t        t        d| _        y )Nr	  r   )r   rM   r3   r  r  pool_classes_by_scheme)r1   socks_proxyusernamepassword	num_poolsrI   connection_pool_kwrR   s          r   r3   zSocksProxyManager.__init__  s9    /D[/Q+,GB/AB+-'
#r4   )NN
   N)r?   r@   rA   r3   ri   rj   s   @r   r!  r!    s    
 
r4   r!  )_
__future__r   
contextlibr  http.clientrY   r   r0   r  warningsdependenciesr   r   r   utilsr   r	   r
   utils.networkingr   r   ImportErrorr   __version__spliturllib3_version_yt_dlp__version	__build__requests.adaptersrequests.utilsurllib3.connectionurllib3.exceptionsurllib3.util_helperr   r   r   r   r   r   commonr   r   r   r    r!   r_   r"   r#   r$   r%   r&   r'   r(   rv   r  r   appendr-   urllib3.util.urlr   r   rJ   rC   rD   warnsuppressr   IS_SECURETRANSPORTssl_r   rF   HTTPAdapterrl   sessionsSessionr   Filterr   Handlerr   r   r  r   r   r  HTTPSConnectionr  HTTPConnectionPoolr  HTTPSConnectionPoolr  PoolManagerr!  SOCKSProxyManagerrB   r4   r   <module>rN     sH   "     	   4 4 > > :
8
99
?
7
88Z7;N;N;T;TUX;YZZ[ ")"5"5!6nEG
<
== #+#7#7"8 GH
<
==          2 I  
t$$	F 	F 
7<<\*":7<<;K;K;V;V"WGLLW\\}-#;GLL<L<L<X<X#YGLL HMMUXkXmmn	 Y			Y	' VQUU'',,*;*;*NV ".    1h  1F0(++77 0D@h''// @8;7>> ;%GOO %& q!3 q qh Z  !
K',,;; K.	.0B0B0R0R 	(g88 ()w:: )
++ 
 '8   #]	V Vs   #-NN