
    }i                         d dl Z d dlZd dlZd dlZe j
                  j                  e j
                  j                  e      dd      Z	ej                  j                  Z G d d      Zy)    Nvmz	runner.jsc                   p    e Zd ZdefdZedefd       Zedededefd       Zd Zdefd	Z	d
e
fdZd Zy)
NodeRunnercodec                     || _         d | _        t        j                  | j	                         t
        gt        j                  t        j                  d      | _        y )NT)stdinstdouttext)r   function_name
subprocessPopen
_node_pathRUNNER_PATHPIPEproc)selfr   s     I/usr/local/lib/python3.12/dist-packages/pytubefix/sig_nsig/node_runner.py__init__zNodeRunner.__init__   sC    	!$$__,//??	
	    returnc                      t         j                  dk(  rdnd} t         j                  dk(  rt        n#t         j                  j	                  t        d      }t         j                  j	                  |d| z         S )Nntz.exe binnode)osnameNODE_DIRpathjoin)suffixbin_dirs     r   r   zNodeRunner._node_path   sL    77d? ggo(277<<%3Pww||GVf_55r   fun_namec                 >    d| d| ddz   }| j                  d|      S )Nz
_exposed['z']=;z})(_yt_player);)replace)r   r#   exposeds      r   _exposedzNodeRunner._exposed   s.    xjH:Q7:KK||-w77r   c                 .   | j                   j                  j                  t        j                  |      dz          | j                   j                  j                          t        j                  | j                   j                  j                               S )N
)	r   r   writejsondumpsflushloadsr	   readline)r   datas     r   _sendzNodeRunner._send    s\    		djj.56		zz$))**33566r   r   c                 l    || _         | j                  d| j                  | j                  |      d      S )Nload)typer   )r   r2   r(   r   )r   r   s     r   load_functionzNodeRunner.load_function%   s-    *zz64==M3Z[\\r   argsc                 H    | j                  d| j                  |xs g d      S )Ncall)r5   funr7   )r2   r   )r   r7   s     r   r9   zNodeRunner.call)   s#    zz6$2D2DdjVXYZZr   c                     | j                   j                  j                          | j                   j                          | j                   j	                          y )N)r   r   close	terminatewait)r   s    r   r<   zNodeRunner.close,   s4    						r   N)__name__
__module____qualname__strr   staticmethodr   r(   r2   r6   listr9   r<    r   r   r   r   
   sx    
S 
 6 6 6
 8s 8c 8c 8 87
]3 ][ [r   r   )r   r,   r   nodejs_wheel.executablenodejs_wheelr   r    dirname__file__r   
executableROOT_DIRr   r   rE   r   r   <module>rL      sQ    	    ggll277??84dKH""++% %r   