
    vg                        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	 d dlZn# e$ r Y nw xY wddl	m
Z
mZ ddlmZ ej        dk    rdd	ZddZddZddZddZedk    r e             dS dS )    )annotationsN   )ClientConnectionconnect)versionwin32returnNonec                 b   ddl } |                     d          }|                     d          }d}| j        j                            |          }||k    rt          d          |                                 }| j        j                            ||                     |                    dk    rt          d          t          	                    |t          j                  }|                     ||z            }| j        j                            ||          dk    rt          d          dS )	z
        Enable VT-100 for console output on Windows.

        See also https://github.com/python/cpython/issues/73245.

        r   Ni   zunable to obtain stdout handlez$unable to query current console modezunable to set console mode)ctypesc_uintwindllkernel32GetStdHandleRuntimeErrorGetConsoleModebyrefint
from_bytessys	byteorderSetConsoleMode)r   STD_OUTPUT_HANDLEINVALID_HANDLE_VALUE"ENABLE_VIRTUAL_TERMINAL_PROCESSINGhandlecur_modepy_int_modenew_modes           P/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/websockets/__main__.pywin_enable_vt100r#      s    	"MM#..%}}R00-2*'445FGG)))?@@@==??=!00h9O9OPPTUUUEFFF nnXs}====/Q!QRR=!00BBaGG;<<< HG    stringstrc                    t           j                            d|  d           t           j                                         d S )Nz	7
[A[Lz
8[Br   stdoutwriteflushr%   s    r"   print_during_inputr-   3   sQ    J	 	 	 	    Jr$   c                    t           j                            d|  d           t           j                                         d S )Nz[K
r(   r,   s    r"   print_over_inputr0   G   sQ    J	! 		! 	! 	!   Jr$   	websocketr   stopthreading.Eventc                r   | D ]N}t          |t                    rt          d|z              *t          d|                                z              O|                                sQt
          j        dk    rt          j        }nt          j	        }t          j        t          j                    |           d S d S )Nz< z< (binary) r   )
isinstancer&   r-   hexis_setr   platformsignalCTRL_C_EVENTSIGINToskillgetpid)r1   r2   messagectrl_cs       r"   print_incoming_messagesrA   S   s     > >gs## 	>tg~....}w{{}}<====;;== % <7""(FF]F
	V$$$$$% %r$   c                    t          j        ddd          } |                                 }|                    dd           |                    dd	d
           |                                 }|j        rt          dt                      d S |j        | 	                    d           t          j        dk    rh	 t                       nX# t          $ rK}t          j                            d| d           t          j                                         Y d }~nd }~ww xY w	 t#          |j                  }t          d|j         d           nF# t$          $ r9}t          d|j         d| d           t          j        d           Y d }~nd }~ww xY wt)          j                    }t)          j        t.          ||f          }|                                 	 	 t3          d          }|                    |           %# t6          t8          f$ r: |                                 |                                 t?          d           Y nw xY w|                                  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Connected to .zFailed to connect to z: r   )targetargsTz> zConnection closed.)!argparseArgumentParseradd_mutually_exclusive_groupadd_argument
parse_argsr   printwebsockets_versionrH   errorr   r8   r#   r   stderrr*   r+   r   	Exceptionexit	threadingEventThreadrA   startinputsendKeyboardInterruptEOFErrorsetcloser0   join)parsergrouprN   excr1   r2   threadr?   s           r"   mainri   c   s   $#3  F
 //11E	{<888	ugS999D| 0.00111xBCCC |w	 	 	 	JB:=B B B  
 J	+DH%%	
 	)dh)))****	    8dh88#888999 ?D %<ItCTUUUF
LLNNN/	$DkkGNN7###	$ x( / / /


-...../
 KKMMMMMsD   <C 
D ADD $E 
F/FF&H AII__main__)r	   r
   )r%   r&   r	   r
   )r1   r   r2   r3   r	   r
   )
__future__r   rO   r<   r9   r   rZ   readlineImportErrorsync.clientr   r   r   rU   r8   r#   r-   r0   rA   ri   __name__ r$   r"   <module>rq      s;   " " " " " "  				  



    	OOOO 	 	 	D	 3 2 2 2 2 2 2 2 2 2 2 2 2 2 <7= = = =<   (	 	 	 	% % % % 8 8 8 8v zDFFFFF s   ! ))