o
    ҷh                     @  s:  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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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)	dataclassNc                      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   _/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v85/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   A      

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,   )Nr6   r7   )r-   r6   r7   r.   r   r   r   r   R   r/   zPlayerProperty.to_jsonc                 C  r0   )Nr6   r7   )r6   r7   r1   r   r   r   r   r   X   r2   zPlayerProperty.from_jsonNr3   r   r   r   r   r5   I      
 r5   c                   @  s6   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	   r7   c                 C  s"   t  }| j |d< | j|d< |S )Nr:   r7   )r-   r:   r   r7   r.   r   r   r   r   i   s   
zPlayerEvent.to_jsonc                 C  s   | t |d t|d dS )Nr:   r7   )r:   r7   )r&   r   r	   r   r   r   r   r   o   s   
zPlayerEvent.from_jsonNr3   r   r   r   r   r9   `   r8   r9   c                   @  r(   )
PlayerErrorz$
    Corresponds to kMediaError
    r	   type_
error_codec                 C  r,   )Ntype	errorCode)r-   r<   r=   r.   r   r   r   r      r/   zPlayerError.to_jsonc                 C  r0   )Nr>   r?   )r<   r=   r1   r   r   r   r   r      r2   zPlayerError.from_jsonNr3   r   r   r   r   r;   w   s   
 r;   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      
rE   c                  c  rA   )z$
    Disables the Media domain.
    rB   zMedia.disableNr   rC   r   r   r   disable   rF   rG   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   	player_idztyping.List[PlayerProperty]
propertiesr   r   r   c                 C  $   | t |d dd |d D dS )NplayerIdc                 S     g | ]}t |qS r   )r5   r   .0ir   r   r   
<listcomp>       z5PlayerPropertiesChanged.from_json.<locals>.<listcomp>rK   )rJ   rK   r   r   r   r   r   r   r         z!PlayerPropertiesChanged.from_jsonN)r   r   r   rI   r    r!   r"   r#   r4   r$   r   r   r   r   r   rI         
 rI   zMedia.playerEventsAddedc                   @  rH   )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   rJ   ztyping.List[PlayerEvent]eventsr   r   r   c                 C  rL   )NrM   c                 S  rN   r   )r9   r   rO   r   r   r   rR      rS   z/PlayerEventsAdded.from_json.<locals>.<listcomp>rY   )rJ   rY   rT   r   r   r   r   r      rU   zPlayerEventsAdded.from_jsonN)r   r   r   rX   rV   r   r   r   r   rX      rW   rX   zMedia.playerMessagesLoggedc                   @  rH   )PlayerMessagesLoggedz@
    Send a list of any messages that need to be delivered.
    r   rJ   ztyping.List[PlayerMessage]messagesr   r   r   c                 C  rL   )NrM   c                 S  rN   r   )r)   r   rO   r   r   r   rR      rS   z2PlayerMessagesLogged.from_json.<locals>.<listcomp>r[   )rJ   r[   rT   r   r   r   r   r      rU   zPlayerMessagesLogged.from_jsonN)r   r   r   rZ   rV   r   r   r   r   rZ         
 rZ   zMedia.playerErrorsRaisedc                   @  rH   )PlayerErrorsRaisedz>
    Send a list of any errors that need to be delivered.
    r   rJ   ztyping.List[PlayerError]errorsr   r   r   c                 C  rL   )NrM   c                 S  rN   r   )r;   r   rO   r   r   r   rR      rS   z0PlayerErrorsRaised.from_json.<locals>.<listcomp>r^   )rJ   r^   rT   r   r   r   r   r      rU   zPlayerErrorsRaised.from_jsonN)r   r   r   r]   rV   r   r   r   r   r]      r\   r]   zMedia.playersCreatedc                   @  s(   e Zd ZU dZded< ed
ddZd	S )PlayersCreatedz
    Called whenever a player is created, or when a new agent joins and recieves
    a list of active players. If an agent is restored, it will recieve the full
    list of player ids and all events again.
    ztyping.List[PlayerId]playersr   r   r   c                 C  s   | dd |d D dS )Nc                 S  rN   r   rT   rO   r   r   r   rR      rS   z,PlayersCreated.from_json.<locals>.<listcomp>r`   )r`   r   r   r   r   r   r      s   zPlayersCreated.from_jsonN)r   r   r   r_   rV   r   r   r   r   r_      s
   
 r_   )r   r@   )
__future__r   utilr   r   dataclassesr   enumtypingr	   r   r'   r&   r)   r5   r9   r;   rE   rG   rI   rX   rZ   r]   r_   r   r   r   r   <module>   s@    


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