
    ' j                       S r SSKJr  SSKrSSKrSSKrSSKrSSKJrJ	r	  SSK
JrJrJrJr  SSKJr  / SQr " S S	\R$                  5      r\R(                  " S
S9 " S S5      5       r\R(                  " S
S9 " S S5      5       r\R(                  " S
S9 " S S5      5       r\R(                  " S
S9 " S S5      5       r\R(                  " S
S9 " S S5      5       r\R(                   " S S5      5       r\R(                   " S S5      5       r " S S\5      r " S S\5      r " S S\\R<                  S S!9rS%S" jr S&S# jr!\RD                  (       a(  \RF                  \\$\   /\%4   r&\RO                  S$5        gg)'z
PUBLIC API    )annotationsN)_jsc_preferences_jsc_providers)IEContentProviderIEContentProviderErrorregister_preference_genericregister_provider_generic)ExtractorError)JsChallengeProviderJsChallengeProviderError"JsChallengeProviderRejectedRequestJsChallengeProviderResponseJsChallengeRequestJsChallengeResponseJsChallengeTypeNChallengeInputNChallengeOutputSigChallengeInputSigChallengeOutputregister_preferenceregister_providerc                      \ rS rSrSrSrSrg)r   $   nsig N)__name__
__module____qualname____firstlineno__NSIG__static_attributes__r       v/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/yt_dlp/extractor/youtube/jsc/provider.pyr   r   $   s    A
Cr$   r   T)frozenc                  8    \ rS rSr% S\S'   S\S'   SrS\S'   S	rg)
r   )   r   typez#NChallengeInput | SigChallengeInputinputNz
str | Nonevideo_idr   )r   r   r   r    __annotations__r+   r#   r   r$   r%   r   r   )   s    
..Hjr$   r   c                  J    \ rS rSr% S\S'   \R                  " \S9rS\S'   Sr	g)	r   0   str
player_urldefault_factory	list[str]
challengesr   N
r   r   r   r    r,   dataclassesfieldlistr4   r#   r   r$   r%   r   r   0       O'--dCJ	Cr$   r   c                  J    \ rS rSr% S\S'   \R                  " \S9rS\S'   Sr	g)	r   6   r/   r0   r1   r3   r4   r   Nr5   r   r$   r%   r   r   6   r9   r$   r   c                  @    \ rS rSr% \R
                  " \S9rS\S'   Sr	g)r   <   r1   dict[str, str]resultsr   N
r   r   r   r    r6   r7   dictr?   r,   r#   r   r$   r%   r   r   <       )//EG^Er$   r   c                  @    \ rS rSr% \R
                  " \S9rS\S'   Sr	g)r   A   r1   r>   r?   r   Nr@   r   r$   r%   r   r   A   rB   r$   r   c                  <    \ rS rSr% S\S'   SrS\S'   SrS\S'   S	rg)
r   F   r   requestNzJsChallengeResponse | NoneresponsezException | Noneerrorr   )r   r   r   r    r,   rH   rI   r#   r   r$   r%   r   r   F   s    +/H(/"E"r$   r   c                  *    \ rS rSr% S\S'   S\S'   Srg)r   M   r   r)   z%NChallengeOutput | SigChallengeOutputoutputr   N)r   r   r   r    r,   r#   r   r$   r%   r   r   M   s    
11r$   r   c                  <   ^  \ rS rSrSrSSS.SU 4S jjjjrSrU =r$ )r   S   z9Reject the JsChallengeRequest (cannot handle the request)N)_skipped_componentsc               0   > [         TU ]  X5        X0l        g )N)super__init__rO   )selfmsgexpectedrO   	__class__s       r%   rR   +JsChallengeProviderRejectedRequest.__init__V   s    '#6 r$   )NF)rU   bool)r   r   r   r    __doc__rR   r#   __classcell__)rV   s   @r%   r   r   S   s    C7PT 7 7 7r$   r   c                      \ rS rSrSrSrg)r   [   z-An error occurred while solving the challenger   N)r   r   r   r    rY   r#   r   r$   r%   r   r   [   s    7r$   r   c                  f    \ rS rSr% SrS\S'   S
S jrSS jr\R                  SS j5       r
S rSrg	)r   _   r   ztuple[JsChallengeType] | None_SUPPORTED_TYPESc                    U R                  5       (       d  [        U R                   S35      eU R                  b@  UR                  U R                  ;  a%  [        SUR                   SU R                   35      eg g )Nz is not availablezJS Challenge type "z" is not supported by )is_availabler   PROVIDER_NAMEr_   r)   )rS   rG   s     r%   __validate_request&JsChallengeProvider.__validate_requestd   s      ""48J8J7KK\5]^^ !!-D$9$994%gll^3I$J\J\I]^` ` : .r$   c              #     #    / nU H&  n U R                  U5        UR                  U5        M(     U R	                  U5       Sh  vN   g! [         a  n[        X4S9v    SnAM_  SnAff = f N(7f)z3Solve multiple JS challenges and return the results)rG   rI   N)&_JsChallengeProvider__validate_requestappendr   r   _real_bulk_solve)rS   requestsvalidated_requestsrG   es        r%   
bulk_solveJsChallengeProvider.bulk_solvep   sr     G''0"))'2   (();<<< 6 1'KK 	=s9   A0"AA0A.A0
A+A& A0&A++A0c                2    [        U R                   S35      e)z:Subclasses can override this method to handle bulk solvingz  does not implement bulk solving)NotImplementedErrorrb   )rS   ri   s     r%   rh   $JsChallengeProvider._real_bulk_solve|   s     "T%7%7$88X"YZZr$   c                |     U R                   R                  UUSS9$ ! [         a  n[        SU 35      UeS nAff = f)NT)r+   r0   fatalz(Failed to load player for JS challenge: )ie_load_playerr
   r   )rS   r+   r0   rk   s       r%   _get_playerJsChallengeProvider._get_player   s]    	G77''!% (  
  	G*:1#>@EFG	Gs    
;6;N)rG   r   )ri   zlist[JsChallengeRequest]returnz9typing.Generator[JsChallengeProviderResponse, None, None])r   r   r   r    r_   r,   rf   rl   abcabstractmethodrh   ru   r#   r   r$   r%   r   r   _   s=     7938
`
= 	[ [	Gr$   r   JCP)suffixc                <    [        U [        [        R                  S9$ )z$Register a JsChallengeProvider class)provider
base_classregistry)r	   r   r   value)r}   s    r%   r   r      s    $&%% r$   c                 @    [        [        [        R                  /U Q76 $ )z6Register a preference for a JsChallengeProvider class.)r   r   r   r   )	providerss    r%   r   r      s%    & 
 r$   
Preference)r}   type[JsChallengeProvider])r   r   rw   z)typing.Callable[[Preference], Preference])(rY   
__future__r   rx   r6   enumtyping&yt_dlp.extractor.youtube.jsc._registryr   r   &yt_dlp.extractor.youtube.pot._providerr   r   r   r	   yt_dlp.utilsr
   __all__Enumr   	dataclassr   r   r   r   r   r   r   r   r   ABCr   r   r   TYPE_CHECKINGCallabler8   intr   rg   r   r$   r%   <module>r      s    " 
    S  ("dii 
 d#    $  d#D D $D
 d#D D $D
 d#F F $F d#F F $F # # # 2 2 2
7)? 785 8+G+SWWU +G\ 
"5t<N7O!PRU!UVJNN<  r$   