
    &thW                        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d dlm	Z	m
Z
 ddlmZ ddlmZ ddl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ddZedk    r e             dS dS )     )annotationsN)AnySet   )ConnectionClosed)Close)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 )	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)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           g/var/www/html/mycamper/aliexpress-site/backend/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    loopasyncio.AbstractEventLoopstopasyncio.Future[None]c                    |                                   |                                sQt          j        dk    rt          j        }nt          j        }t          j        t          j	                    |           d S d S )Nr   )
r*   doner   platformsignalCTRL_C_EVENTSIGINToskillgetpid)r(   r*   ctrl_cs      r%   exit_from_event_loop_threadr6   1   si     	IIKKK99;; % <7""(FF]F
	V$$$$$% %r'   stringstrc                    t           j                            d|  d           t           j                                         d S )Nz	7
[A[Lz
8[Br   stdoutwriteflushr7   s    r%   print_during_inputr?   @   sQ    J	 	 	 	    Jr'   c                    t           j                            d|  d           t           j                                         d S )Nz[K
r:   r>   s    r%   print_over_inputrB   T   sQ    J	! 		! 	! 	!   Jr'   uriinputsasyncio.Queue[str]c                4  K   	 t          |            d {V }t          d|  d           n># t          $ r1}t          d|  d| d           t	          ||           Y d }~d S d }~ww xY w	 	 t          j        |                                          }t          j        |                                          }t          j	        |||gt
          j
                   d {V \  }}	||	v r|                                 ||	v r|                                 ||v rr	 |                                }
t          |
t                    rt          d|
z              n5t          d|
                                z              n# t           $ r Y n>w xY w||v r/|                                }
|                    |
           d {V  ||v rnX|                                 d {V  |j        |j        J t+          |j        |j                  }t          d	| d           t	          ||           d S # |                                 d {V  |j        |j        J t+          |j        |j                  }t          d	| d           t	          ||           w xY w)
NzConnected to .zFailed to connect to z: T)return_whenz< z< (binary) zConnection closed: )r	   r?   	ExceptionrB   r6   asynciocreate_taskrecvgetwaitFIRST_COMPLETEDcancelresult
isinstancer8   hexr   sendclose
close_codeclose_reasonr   )rC   r(   rD   r*   	websocketexcincomingoutgoingr-   pendingmessageclose_statuss               r%   
run_clientr_   `   sA     3!#,,&&&&&&	 	131112222    >>>>>>???#D$///)0	,3,?	@P@P,Q,QH,3,?

,M,MH #*,8T*8O# # #      MD'
 7""!!!7""!!!4J&oo//G "'3// J*4'>::::*=7;;==+HIIII (   E 4"//++nnW---------t||?	D oo#/I4J4V4VVY193IJJ>|>>>???#D$///// oo#/I4J4V4VVY193IJJ>|>>>???#D$////sG   - 
A(&A##A(,B-H. E; .AH. ;
FH. F=H. .A)J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	 dd l}n# t$          $ r Y nw xY wt'          j                    }dd}|                     |                      }|                                }|                    t1          |j        |||                     t3          j        |j                  }	|	                                 	 	 t;          d          }
|                    |j        |
           +# t@          tB          f$ r |                    |j"        d            Y nw xY w|	#                                 |$                                 d S )Nzpython -m websocketszInteractive WebSocket client.F)progdescriptionadd_helpz	--version
store_true)actionrC   z<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: rA   r   r   rE   c                 ,   K   t          j                    S )N)rJ   Queue r'   r%   queue_factoryzmain.<locals>.queue_factory   s      }r'   )targetTz> )r   rE   )%argparseArgumentParseradd_mutually_exclusive_groupadd_argument
parse_argsr
   printwebsockets_versionrC   errorr   r.   r&   r   stderrr<   r=   readlineImportErrorrJ   new_event_looprun_until_completecreate_futurerK   r_   	threadingThreadrun_foreverstartinputcall_soon_threadsafe
put_nowaitKeyboardInterruptEOFError
set_resultjoinrU   )parsergroupargsrY   rw   r(   rl   rD   r*   threadr]   s              r%   mainr      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	    !##D    "&!8!8!I!IF "&!3!3!5!5D 	Z$==>>> T%5666F
LLNNN9	BDkkG%%f&7AAA	B x( 9 9 9!!$/4888889 KKMMM 	JJLLLLLs=   <C 
D ADD $D) )
D65D6,H ,H54H5__main__)r   r   )r(   r)   r*   r+   r   r   )r7   r8   r   r   )
rC   r8   r(   r)   rD   rE   r*   r+   r   r   )
__future__r   rn   rJ   r2   r/   r   r|   typingr   r   
exceptionsr   framesr   legacy.clientr	   r
   rt   r.   r&   r6   r?   rB   r_   r   __name__rk   r'   r%   <module>r      sa   " " " " " "   				  



             ( ( ( ( ( (       " " " " " " 2 2 2 2 2 2 <7= = = =<% % % %   (	 	 	 	80 80 80 80vG G G GT zDFFFFF r'   