Ë
    `§1h/.  ã                   óL   — d dl mZ  G d„ d«      Z G d„ d«      Z G d„ d«      Zy)	é    )Úcommand_builderc                   ó&   — e Zd ZdZd„ Zed„ «       Zy)ÚNetworkEventzRepresents a network event.c                 ó    — || _         || _        y ©N)Úevent_classÚparams)Úselfr   Úkwargss      úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/network.pyÚ__init__zNetworkEvent.__init__   s   € Ø&ˆÔØˆ�ó    c                 ó4   —  | dd|j                  d«      i|¤ŽS )Nr   © )Úget)ÚclsÚjsons     r   Ú	from_jsonzNetworkEvent.from_json   s   € áÑ?˜tŸx™x¨Ó6Ð?¸$Ñ?Ð?r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr   r   r   r   r   r      s    „ Ù%òð ñ@ó ñ@r   r   c                   ón   — e Zd ZddddddddœZd	d
ddœZd„ Zg ddfd„Zdd„Zd„ Zdd„Z	d„ Z
d„ Zd„ Zd„ Zy)ÚNetworkznetwork.beforeRequestSentznetwork.responseStartedznetwork.responseCompletedznetwork.authRequiredznetwork.fetchErrorúnetwork.continueRequestúnetwork.continueWithAuth)Úbefore_requestÚresponse_startedÚresponse_completedÚauth_requiredÚfetch_errorÚcontinue_requestÚcontinue_authÚbeforeRequestSentÚresponseStartedÚauthRequired)r   r   r!   c                 ó<   — || _         g | _        i | _        i | _        y r   )ÚconnÚ
interceptsÚ	callbacksÚsubscriptions)r
   r)   s     r   r   zNetwork.__init__2   s   € ØˆŒ	ØˆŒØˆŒØˆÕr   Nc                 óä   — i }|�||d<   |�||d<   t        |«      dkD  r||d<   ndg|d<   t        d|«      }| j                  j                  |«      }| j                  j                  |d   «       |S )a×  Add an intercept to the network.

        Parameters:
        ----------
            phases (list, optional): A list of phases to intercept.
                Default is empty list.
            contexts (list, optional): A list of contexts to intercept.
                Default is None.
            url_patterns (list, optional): A list of URL patterns to intercept.
                Default is None.

        Returns:
        -------
            str : intercept id
        ÚcontextsÚurlPatternsr   Úphasesr%   znetwork.addInterceptÚ	intercept)Úlenr   r)   Úexecuter*   Úappend)r
   r0   r.   Úurl_patternsr	   ÚcmdÚresults          r   Ú_add_interceptzNetwork._add_intercept8   sˆ   € ð  ˆØÐØ!)ˆF�:ÑØÐ#Ø$0ˆF�=Ñ!Üˆv‹;˜Š?Ø%ˆF�8Òà 3Ð4ˆF�8ÑÜÐ4°fÓ=ˆà—‘×"Ñ" 3Ó'ˆØ�‰×Ñ˜v kÑ2Ô3Øˆr   c                 ó”  — |€d| j                   j                  «       }|D ]D  }| j                  j                  t	        dd|i«      «       | j                   j                  |«       ŒF y	 | j                  j                  t	        dd|i«      «       | j                   j                  |«       y# t        $ r}t        d|› �«      ‚d}~ww xY w)as  Remove a specific intercept, or all intercepts.

        Parameters:
        ----------
            intercept (str, optional): The intercept to remove.
                Default is None.

        Raises:
        ------
            Exception: If intercept is not found.

        Notes:
        -----
            If intercept is None, all intercepts will be removed.
        Nznetwork.removeInterceptr1   zException: )r*   Úcopyr)   r3   r   ÚremoveÚ	Exception)r
   r1   Úintercepts_to_removeÚintercept_idÚes        r   Ú_remove_interceptzNetwork._remove_interceptW   s·   € ð  ÐØ#'§?¡?×#7Ñ#7Ó#9Ð Ø 4ò 5�Ø—	‘	×!Ñ!¤/Ð2KÈkÐ[gÐMhÓ"iÔjØ—‘×&Ñ& |Õ4ñ5ð3Ø—	‘	×!Ñ!¤/Ð2KÈkÐ[dÐMeÓ"fÔgØ—‘×&Ñ& yÕ1øÜò 3Ü +¨a¨SÐ 1Ó2Ð2ûð3ús   Á(AB+ Â+	CÂ4CÃCc                 óà   ‡ ‡— t        |«      }ˆˆ fd„}‰ j                  j                  ||«      }|‰ j                  v r ‰ j                  |   j	                  |«       |S |g‰ j                  |<   |S )a`  Set a callback function to subscribe to a network event.

        Parameters:
        ----------
            event_name (str): The event to subscribe to.
            callback (function): The callback function to execute on event.
                Takes Request object as argument.

        Returns:
        -------
            int : callback id
        c                 ó  •— t        ‰| j                  d   j                  dd «      | j                  d   j                  dd «      | j                  d   j                  dd «      | j                  d   j                  dd «      | j                  d   j                  dd «      | j                  d   j                  dd «      | j                  d   j                  dd «      | j                  d   j                  dd «      ¬	«	      } ‰|«       y )
NÚrequestÚbodySizeÚcookieszgoog:resourceTypeÚheadersÚheadersSizeÚtimingsÚurl)	ÚnetworkÚ
request_idÚ	body_sizerE   Úresource_typerF   Úheaders_sizerH   rI   )ÚRequestr	   r   )Ú
event_datarC   Úcallbackr
   s     €€r   Ú	_callbackz&Network._on_request.<locals>._callbackƒ   sô   ø€ ÜØØ%×,Ñ,¨YÑ7×;Ñ;¸IÀtÓLØ$×+Ñ+¨IÑ6×:Ñ:¸:ÀtÓLØ"×)Ñ)¨)Ñ4×8Ñ8¸ÀDÓIØ(×/Ñ/°	Ñ:×>Ñ>Ð?RÐTXÓYØ"×)Ñ)¨)Ñ4×8Ñ8¸ÀDÓIØ'×.Ñ.¨yÑ9×=Ñ=¸mÈTÓRØ"×)Ñ)¨)Ñ4×8Ñ8¸ÀDÓIØ×%Ñ% iÑ0×4Ñ4°U¸DÓAô
ˆGñ �WÕr   )r   r)   Úadd_callbackr+   r4   )r
   Ú
event_namerQ   ÚeventrR   Úcallback_ids   ` `   r   Ú_on_requestzNetwork._on_requests   so   ù€ ô ˜ZÓ(ˆõ	ð —i‘i×,Ñ,¨U°IÓ>ˆà˜Ÿ™Ñ'Ø�N‰N˜:Ñ&×-Ñ-¨kÔ:ð Ðð +6¨ˆD�N‰N˜:Ñ&àÐr   c                 óÂ  — 	 | j                   |   }| j                  |   }| j	                  |g||¬«      }| j                  ||«      }|| j                  v r| j                  |   j                  |«       n=i }	|g|	d<   | j                  j                  t        d|	«      «       |g| j                  |<   |d   | j                  |<   |S # t        $ r t        d|› d�«      ‚w xY w)a0  Add a request handler to the network.

        Parameters:
        ----------
            event (str): The event to subscribe to.
            url_patterns (list, optional): A list of URL patterns to intercept.
                Default is None.
            contexts (list, optional): A list of contexts to intercept.
                Default is None.
            callback (function): The callback function to execute on request interception
                Takes Request object as argument.

        Returns:
        -------
            int : callback id
        úEvent ú
 not found)r0   r5   r.   Úeventszsession.subscriber1   )ÚEVENTSÚPHASESÚKeyErrorr<   r8   rW   r,   r4   r)   r3   r   r+   )
r
   rU   rQ   r5   r.   rT   Ú
phase_namer7   rV   r	   s
             r   Úadd_request_handlerzNetwork.add_request_handlerš   só   € ð$	8ØŸ™ UÑ+ˆJØŸ™ UÑ+ˆJð ×$Ñ$¨Z¨LÀ|Ð^fÐ$ÓgˆØ×&Ñ& z°8Ó<ˆà˜×+Ñ+Ñ+Ø×Ñ˜zÑ*×1Ñ1°+Õ>àˆFØ *˜|ˆF�8ÑØ�I‰I×ÑœoÐ.AÀ6ÓJÔKØ.9¨]ˆD×Ñ˜zÑ*à&,¨[Ñ&9ˆ�‰�{Ñ#ØÐøô ò 	8Ü˜f U G¨:Ð6Ó7Ð7ð	8ús   ‚C ÃCc                 óè  — 	 | j                   |   }t        |«      }| j                  j                  ||«       | j                  | j                  |   «       | j                  |= | j                  |   j                  |«       t        | j                  |   «      dk(  r;i }|g|d<   | j                  j                  t        d|«      «       | j                  |= yy# t        $ r t        d|› d�«      ‚w xY w)zÒRemove a request handler from the network.

        Parameters:
        ----------
            event_name (str): The event to unsubscribe from.
            callback_id (int): The callback id to remove.
        rY   rZ   r   r[   úsession.unsubscribeN)r\   r^   r<   r   r)   Úremove_callbackr@   r+   r,   r;   r2   r3   r   )r
   rU   rV   rT   Ú	net_eventr	   s         r   Úremove_request_handlerzNetwork.remove_request_handlerÀ   sì   € ð	8ØŸ™ UÑ+ˆJô ! Ó,ˆ	à�	‰	×!Ñ! )¨[Ô9Ø×Ñ˜tŸ~™~¨kÑ:Ô;Ø�N‰N˜;Ð'Ø×Ñ˜:Ñ&×-Ñ-¨kÔ:Üˆt×!Ñ! *Ñ-Ó.°!Ò3ØˆFØ *˜|ˆF�8ÑØ�I‰I×ÑœoÐ.CÀVÓLÔMØ×"Ñ" :Ñ.ð	 4øô ò 	8Ü˜f U G¨:Ð6Ó7Ð7ð	8ús   ‚C ÃC1c                 óZ  — | j                   D ]•  }t        |«      }| j                   |   D ]I  }| j                  j                  ||«       | j	                  | j
                  |   «       | j
                  |= ŒK i }|g|d<   | j                  j                  t        d|«      «       Œ— i | _         y)z,Clear all request handlers from the network.r[   rb   N)r,   r   r)   rc   r@   r+   r3   r   )r
   rT   rd   rV   r	   s        r   Úclear_request_handlerszNetwork.clear_request_handlersÙ   s­   € ð ×,Ñ,ò 	NˆJÜ$ ZÓ0ˆIØ#×1Ñ1°*Ñ=ò 0�Ø—	‘	×)Ñ)¨)°[ÔAØ×&Ñ& t§~¡~°kÑ'BÔCØ—N‘N ;Ñ/ð0ð ˆFØ *˜|ˆF�8ÑØ�I‰I×ÑœoÐ.CÀVÓLÕMð	Nð  ˆÕr   c                 ó:   ‡‡— d}ˆˆfd„}| j                  ||«      S )a  Add an authentication handler to the network.

        Parameters:
        ----------
            username (str): The username to authenticate with.
            password (str): The password to authenticate with.

        Returns:
        -------
            int : callback id
        r!   c                 ó*   •— | j                  ‰‰«       y r   )Ú_continue_with_auth)rC   ÚpasswordÚusernames    €€r   rR   z+Network.add_auth_handler.<locals>._callbackõ   s   ø€ Ø×'Ñ'¨°(Õ;r   )r`   )r
   rl   rk   rU   rR   s    ``  r   Úadd_auth_handlerzNetwork.add_auth_handlerç   s$   ù€ ð  ˆõ	<ð ×'Ñ'¨¨yÓ9Ð9r   c                 ó,   — d}| j                  ||«       y)z�Remove an authentication handler from the network.

        Parameters:
        ----------
            callback_id (int): The callback id to remove.
        r!   N)re   )r
   rV   rU   s      r   Úremove_auth_handlerzNetwork.remove_auth_handlerú   s   € ð  ˆØ×#Ñ# E¨;Õ7r   r   ©NN)r   r   r   r\   r]   r   r8   r@   rW   r`   re   rg   rm   ro   r   r   r   r   r   !   sh   „ à5Ø5Ø9Ø/Ø+Ø5Ø3ñ€Fð .Ø-Ø'ñ€Fò ð %'°ÀDó ó>3ò8%óN$òL/ò2 ò:ó&8r   r   c                   óD   — e Zd ZdZ	 	 	 	 	 	 	 	 ddefd„Zd„ Zd	d„Zd
d„Zy)rO   z*Represents an intercepted network request.NrJ   c                 ó�   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        y r   )
rJ   rK   rL   rE   rM   rF   rN   ÚmethodrH   rI   )r
   rJ   rK   rL   rE   rM   rF   rN   rs   rH   rI   s              r   r   zRequest.__init__  sL   € ð ˆŒØ$ˆŒØ"ˆŒØˆŒØ*ˆÔØˆŒØ(ˆÔØˆŒØˆŒØˆ�r   c                 ó¬   — | j                   st        d«      ‚d| j                   i}| j                  j                  j	                  t        d|«      «       y)zFail this request.úRequest not found.rC   znetwork.failRequestN©rK   Ú
ValueErrorrJ   r)   r3   r   )r
   r	   s     r   Úfail_requestzRequest.fail_request   sE   € ð �ŠÜÐ1Ó2Ð2à˜TŸ_™_Ð-ˆØ�‰×Ñ×!Ñ!¤/Ð2GÈÓ"PÕQr   c                 óò   — | j                   st        d«      ‚d| j                   i}|�||d<   |�||d<   |�||d<   |�||d<   |�||d<   | j                  j                  j	                  t        d	|«      «       y)
z)Continue after intercepting this request.ru   rC   NÚbodyrs   rF   rE   rI   r   rv   )r
   rz   rs   rF   rE   rI   r	   s          r   r#   zRequest.continue_request)  s’   € ð �ŠÜÐ1Ó2Ð2à˜TŸ_™_Ð-ˆØÐØ!ˆF�6‰NØÐØ%ˆF�8ÑØÐØ 'ˆF�9ÑØÐØ 'ˆF�9ÑØˆ?ØˆF�5‰Mà�‰×Ñ×!Ñ!¤/Ð2KÈVÓ"TÕUr   c                 ó´   — i }| j                   |d<   |r|sd|d<   nd|d<   d||dœ|d<   | j                  j                  j                  t	        d|«      «       y	)
ay  Continue with authentication.

        Parameters:
        ----------
            request (Request): The request to continue with.
            username (str): The username to authenticate with.
            password (str): The password to authenticate with.

        Notes:
        -----
            If username or password is None, it attempts auth with no credentials
        rC   ÚdefaultÚactionÚprovideCredentialsrk   )Útyperl   rk   Úcredentialsr   N)rK   rJ   r)   r3   r   )r
   rl   rk   r	   s       r   rj   zRequest._continue_with_auth=  sb   € ð ˆØ ŸO™OˆˆyÑá™xØ(ˆF�8Òà3ˆF�8ÑØ-7ÀXÐ[cÑ$dˆF�=Ñ!à�‰×Ñ×!Ñ!¤/Ð2LÈfÓ"UÕVr   )NNNNNNNN)NNNNNrp   )	r   r   r   r   r   r   rx   r#   rj   r   r   r   rO   rO     s>   „ Ù4ð ØØØØØØØñàóò0RóVô(Wr   rO   N)Ú%selenium.webdriver.common.bidi.commonr   r   r   rO   r   r   r   ú<module>r‚      s2   ðõ$ B÷	@ñ 	@÷a8ñ a8÷HOWò OWr   