a
    یxd                     @  s   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zd dlZW n eyR   Y n0 ddl	m
Z
mZ ddlmZ ejdkrddd	d
ZdddddZdddddZddddddZddddZedkre  dS )    )annotationsN   )ClientConnectionconnect)versionwin32None)returnc                  C  s   ddl } | d}| d}d}| jj|}||kr>td|  }| jj|| |dkrhtdt	|t
j}| ||B }| jj||dkrtddS )	zu
        Enable VT-100 for console output on Windows.

        See also https://bugs.python.org/issue29059.

        r   Ni   zunable to obtain stdout handlez$unable to query current console modezunable to set console mode)ctypesZc_uintZwindllZkernel32ZGetStdHandleRuntimeErrorZGetConsoleModeZbyrefint
from_bytessys	byteorderZSetConsoleMode)r   ZSTD_OUTPUT_HANDLEZINVALID_HANDLE_VALUEZ"ENABLE_VIRTUAL_TERMINAL_PROCESSINGhandleZcur_modeZpy_int_modeZnew_mode r   K/var/www/html/Ranjet/env/lib/python3.9/site-packages/websockets/__main__.pywin_enable_vt100   s    

r   str)stringr	   c                 C  s"   t jd|  d t j  d S )Nz	7
[A[Lz
8[Br   stdoutwriteflushr   r   r   r   print_during_input3   s    r   c                 C  s"   t jd|  d t j  d S )Nz[K
r   r   r   r   r   print_over_inputG   s    r   r   zthreading.Event)	websocketstopr	   c                 C  sf   | D ],}t |tr td|  qtd|   q| sbtjdkrLtj}ntj	}t
t
 | d S )Nz< z< (binary) r   )
isinstancer   r   hexis_setr   platformsignalZCTRL_C_EVENTSIGINToskillgetpid)r    r!   messageZctrl_cr   r   r   print_incoming_messagesS   s    

r,   c               
   C  s  t jdddd} |  }|jddd |jdd	d
d |  }|jrVtdt  d S |jd u rj| 	d t
jdkrz
t  W nB ty } z*t
jd| d t
j  W Y d }~n
d }~0 0 zt|j}W nH ty } z.td|j d| d t
d W Y d }~nd }~0 0 td|j d t }tjt||fd}|  ztd}|| qPW n0 ttfy   |  |  td Y n0 |   d S )Nzpython -m websocketszInteractive WebSocket client.F)progdescriptionadd_helpz	--version
store_true)actionuriz<uri>?)metavarnargszwebsockets z+the following arguments are required: <uri>r   zUnable to set terminal to VT100 mode. This is only supported since Win10 anniversary update. Expect weird symbols on the terminal.
Error: r   zFailed to connect to z: .r   zConnected to )targetargsz> zConnection closed.)!argparseArgumentParseradd_mutually_exclusive_groupadd_argument
parse_argsr   printwebsockets_versionr2   errorr   r%   r   r   stderrr   r   r   	Exceptionexit	threadingEventThreadr,   startinputsendKeyboardInterruptEOFErrorsetcloser   join)parsergroupr8   excr    r!   threadr+   r   r   r   mainc   sR    



  rS   __main__)
__future__r   r9   r(   r&   r   rD   readlineImportErrorZsync.clientr   r   r   r?   r%   r   r   r   r,   rS   __name__r   r   r   r   <module>   s&   
;