
    }j                     T    d dl mZ ddlmZmZmZmZ  G d de      Z G d de      Zy)	   )PostProcessor   )PopenPostProcessingErrorshell_quotevariadicc                   0     e Zd Zd Z fdZd Zd Z xZS )ExecPPc                 P    t        |      | _        t        j                  | |       y )N)r   exec_cmdr   __init__)self
downloaderr   s      L/root/.hermes/venv/lib/python3.12/site-packages/yt_dlp/postprocessor/exec.pyr   zExecPP.__init__   s     *tZ0    c                     t         |   |       t        | j                  dd       }|r8d|d   vr0| j                  D ]   }| j                  j                  |i d      }" y y y )Nparamszallow-unsafe-exec-expansioncompat_optsT)_exec)superset_downloadergetattr_downloaderr   prepare_outtmpl)r   r   r   cmd_	__class__s        r   r   zExecPP.set_downloader   sn    z*))8T:36-;PP}} J$$44S"D4IJ Q6r   c                    | j                   j                  ||      \  }}|r| j                   j                  |      |z  S |j                  d|j                  d            }|r&d|vr|dz  }|j	                  dt        |d            }|S )Nfilepath	_filenamez{}z {}Tshell)r   r   escape_outtmplgetreplacer   )r   r   infotmpl	tmpl_dictr   s         r   	parse_cmdzExecPP.parse_cmd   s    **::3Ei##22489DD88J(=>3u++dK$EFC
r   c                     | j                   D ]V  }| j                  ||      }| j                  d|        t        j                  |d      \  }}}|dk7  sJt        d|        g |fS )NzExecuting command: Tr!       zCommand returned error code )r   r)   	to_screenr   runr   )r   r&   r'   r   r   return_codes         r   r-   z
ExecPP.run!   sx    MM 	XD..t,CNN067 %		#T :Aq+a),H*VWW	X 4xr   )__name__
__module____qualname__r   r   r)   r-   __classcell__r   s   @r   r
   r
      s    1
Jr   r
   c                        e Zd Z fdZ xZS )ExecAfterDownloadPPc                 F    t        |   |i | | j                  d       y )Nzyt_dlp.postprocessor.ExecAfterDownloadPP is deprecated and may be removed in a future version. Use yt_dlp.postprocessor.ExecPP instead)r   r   deprecation_warning)r   argskwargsr   s      r   r   zExecAfterDownloadPP.__init__-   s*    $)&)  ^	_r   )r/   r0   r1   r   r2   r3   s   @r   r5   r5   ,   s    _ _r   r5   N)	commonr   utilsr   r   r   r   r
   r5    r   r   <module>r=      s)    ! E E#] #N_& _r   