o
    M,h                     @  sj  d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 G dd deZG d	d
 d
eZeG dd dZeG dd dZeG dd dZeG dd dZeG dd dZeG dd dZd,ddZd,ddZedeG dd dZed eG d!d" d"Zed#eG d$d% d%Zed&eG d'd( d(Zed)eG d*d+ d+ZdS )-    )annotations   )event_classT_JSON_DICT)	dataclassN)domc                      s8   e Zd ZdZdddZedddZ fd	d
Z  ZS )PlayerIdzI
    Players will get an ID that is unique within the agent context.
    returnstrc                 C     | S N selfr   r   y/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v141/media.pyto_json      zPlayerId.to_jsonjsonc                 C     | |S r   r   clsr   r   r   r   	from_json      zPlayerId.from_jsonc                      d t  S )NzPlayerId({})formatsuper__repr__r   	__class__r   r   r         zPlayerId.__repr__)r	   r
   )r   r
   r	   r   )	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__r   r   r   r   r      s    
r   c                      s4   e Zd Zd
ddZedddZ fdd	Z  ZS )	Timestampr	   floatc                 C  r   r   r   r   r   r   r   r      r   zTimestamp.to_jsonr   c                 C  r   r   r   r   r   r   r   r   "   r   zTimestamp.from_jsonc                   r   )NzTimestamp({})r   r   r   r   r   r   &   r    zTimestamp.__repr__)r	   r(   )r   r(   r	   r'   )r!   r"   r#   r   r%   r   r   r&   r   r   r   r   r'      s
    
r'   c                   @  6   e Zd ZU dZded< ded< dd Zedd Zd	S )
PlayerMessagezU
    Have one type per entry in MediaLogRecord::Type
    Corresponds to kMessage
    r
   levelmessagec                 C     t  }| j|d< | j|d< |S )Nr+   r,   )dictr+   r,   r   r   r   r   r   r   =      

zPlayerMessage.to_jsonc                 C     | t |d t |d dS )Nr+   r,   )r+   r,   r
   r   r   r   r   r   C      

zPlayerMessage.from_jsonNr!   r"   r#   r$   __annotations__r   r%   r   r   r   r   r   r*   *   s   
 r*   c                   @  r)   )
PlayerPropertyz-
    Corresponds to kMediaPropertyChange
    r
   namevaluec                 C  r-   )Nr7   r8   )r.   r7   r8   r/   r   r   r   r   T   r0   zPlayerProperty.to_jsonc                 C  r1   )Nr7   r8   )r7   r8   r2   r   r   r   r   r   Z   r3   zPlayerProperty.from_jsonNr4   r   r   r   r   r6   K      
 r6   c                   @  6   e Zd ZU dZded< ded< dd Zedd	 Zd
S )PlayerEventz-
    Corresponds to kMediaEventTriggered
    r'   	timestampr
   r8   c                 C  s"   t  }| j |d< | j|d< |S )Nr<   r8   )r.   r<   r   r8   r/   r   r   r   r   k   s   
zPlayerEvent.to_jsonc                 C  s   | t |d t|d dS )Nr<   r8   )r<   r8   )r'   r   r
   r   r   r   r   r   q   s   
zPlayerEvent.from_jsonNr4   r   r   r   r   r;   b   r9   r;   c                   @  r:   )PlayerErrorSourceLocationz
    Represents logged source line numbers reported in an error.
    NOTE: file and line are from chromium c++ implementation code, not js.
    r
   fileintlinec                 C  r-   )Nr>   r@   )r.   r>   r@   r/   r   r   r   r      r0   z!PlayerErrorSourceLocation.to_jsonc                 C  s   | t |d t|d dS )Nr>   r@   )r>   r@   )r
   r?   r   r   r   r   r      r3   z#PlayerErrorSourceLocation.from_jsonNr4   r   r   r   r   r=   y   s   
 r=   c                   @  sN   e Zd ZU dZded< ded< ded< ded	< d
ed< dd Zedd ZdS )PlayerErrorz$
    Corresponds to kMediaError
    r
   
error_typer?   codez&typing.List[PlayerErrorSourceLocation]stacktyping.List[PlayerError]causer.   datac                 C  sP   t  }| j|d< | j|d< dd | jD |d< dd | jD |d< | j|d< |S )	N	errorTyperC   c                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z'PlayerError.to_json.<locals>.<listcomp>rD   c                 S  rI   r   rJ   rK   r   r   r   rN      rO   rF   rG   )r.   rB   rC   rD   rF   rG   r/   r   r   r   r      s   


zPlayerError.to_jsonc                 C  sF   | t |d t|d dd |d D dd |d D t|d d	S )
NrH   rC   c                 S     g | ]}t |qS r   )r=   r   rK   r   r   r   rN          z)PlayerError.from_json.<locals>.<listcomp>rD   c                 S  rP   r   rA   r   rK   r   r   r   rN      rQ   rF   rG   )rB   rC   rD   rF   rG   )r
   r?   r.   r   r   r   r   r      s   


zPlayerError.from_jsonNr4   r   r   r   r   rA      s   
 	rA   c                   @  s6   e Zd ZU ded< dZded< dd Zedd	 ZdS )
Playerr   	player_idNz"typing.Optional[dom.BackendNodeId]dom_node_idc                 C  s0   t  }| j |d< | jd ur| j |d< |S )NplayerId	domNodeId)r.   rT   r   rU   r/   r   r   r   r      s
   
zPlayer.to_jsonc                 C  s2   | t |d d|v rtj|d dS d dS )NrV   rW   )rT   rU   )r   r   r   BackendNodeIdr   r   r   r   r      s   zPlayer.from_json)r!   r"   r#   r5   rU   r   r%   r   r   r   r   r   rS      s   
 rS   r	   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }dS )z"
    Enables the Media domain
    methodzMedia.enableNr   cmd_dictr   r   r   r   enable      
r^   c                  c  rZ   )z$
    Disables the Media domain.
    r[   zMedia.disableNr   r\   r   r   r   disable   r_   r`   zMedia.playerPropertiesChangedc                   @  0   e Zd ZU dZded< ded< edd	d
ZdS )PlayerPropertiesChangedz
    This can be called multiple times, and can be used to set / override /
    remove player properties. A null propValue indicates removal.
    r   rT   ztyping.List[PlayerProperty]
propertiesr   r   r	   c                 C  $   | t |d dd |d D dS )NrV   c                 S  rP   r   )r6   r   rK   r   r   r   rN      rQ   z5PlayerPropertiesChanged.from_json.<locals>.<listcomp>rc   )rT   rc   r   r   r   r   r   r   r         z!PlayerPropertiesChanged.from_jsonN)r   r   r	   rb   r!   r"   r#   r$   r5   r%   r   r   r   r   r   rb         
 rb   zMedia.playerEventsAddedc                   @  ra   )PlayerEventsAddedz
    Send events as a list, allowing them to be batched on the browser for less
    congestion. If batched, events must ALWAYS be in chronological order.
    r   rT   ztyping.List[PlayerEvent]eventsr   r   r	   c                 C  rd   )NrV   c                 S  rP   r   )r;   r   rK   r   r   r   rN     rQ   z/PlayerEventsAdded.from_json.<locals>.<listcomp>rj   )rT   rj   re   r   r   r   r   r      rf   zPlayerEventsAdded.from_jsonN)r   r   r	   ri   rg   r   r   r   r   ri      rh   ri   zMedia.playerMessagesLoggedc                   @  ra   )PlayerMessagesLoggedz@
    Send a list of any messages that need to be delivered.
    r   rT   ztyping.List[PlayerMessage]messagesr   r   r	   c                 C  rd   )NrV   c                 S  rP   r   )r*   r   rK   r   r   r   rN     rQ   z2PlayerMessagesLogged.from_json.<locals>.<listcomp>rl   )rT   rl   re   r   r   r   r   r     rf   zPlayerMessagesLogged.from_jsonN)r   r   r	   rk   rg   r   r   r   r   rk        
 rk   zMedia.playerErrorsRaisedc                   @  ra   )PlayerErrorsRaisedz>
    Send a list of any errors that need to be delivered.
    r   rT   rE   errorsr   r   r	   c                 C  rd   )NrV   c                 S  rP   r   rR   rK   r   r   r   rN   %  rQ   z0PlayerErrorsRaised.from_json.<locals>.<listcomp>ro   )rT   ro   re   r   r   r   r   r   !  rf   zPlayerErrorsRaised.from_jsonN)r   r   r	   rn   rg   r   r   r   r   rn     rm   rn   zMedia.playerCreatedc                   @  s(   e Zd ZU dZded< ed
ddZd	S )PlayerCreatedz
    Called whenever a player is created, or when a new agent joins and receives
    a list of active players. If an agent is restored, it will receive one
    event for each active player.
    rS   playerr   r   r	   c                 C  s   | t |d dS )Nrq   )rq   )rS   r   r   r   r   r   r   3  s   zPlayerCreated.from_jsonN)r   r   r	   rp   rg   r   r   r   r   rp   )  s
   
 rp   )r	   rY   )
__future__r   utilr   r   dataclassesr   enumtyping r   r
   r   r(   r'   r*   r6   r;   r=   rA   rS   r^   r`   rb   ri   rk   rn   rp   r   r   r   r   <module>   sJ    (



