o
    i                     @   sH   d dl mZ ddlmZmZmZmZ G dd deZG dd deZdS )	   )PostProcessor   )PopenPostProcessingErrorshell_quotevariadicc                   @   s$   e Zd Zdd Zdd Zdd ZdS )ExecPPc                 C   s   t | | t|| _d S )N)r   __init__r   exec_cmd)self
downloaderr
    r   M/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/postprocessor/exec.pyr	      s   zExecPP.__init__c                 C   sd   | j ||\}}|r| j || S |d|d}|r0d|vr&|d7 }|dt|dd}|S )Nfilepath	_filenamez{}z {}Tshell)_downloaderprepare_outtmplescape_outtmplgetreplacer   )r   cmdinfotmpl	tmpl_dictr   r   r   r   	parse_cmd   s   zExecPP.parse_cmdc                 C   sZ   | j D ]%}| ||}| d|  tj|dd\}}}|dkr(td| qg |fS )NzExecuting command: Tr       zCommand returned error code )r
   r   	to_screenr   runr   )r   r   r   r   _return_coder   r   r   r      s   
z
ExecPP.runN)__name__
__module____qualname__r	   r   r   r   r   r   r   r      s    r   c                       s   e Zd Z fddZ  ZS )ExecAfterDownloadPPc                    s    t  j|i | | d d S )Nzyt_dlp.postprocessor.ExecAfterDownloadPP is deprecated and may be removed in a future version. Use yt_dlp.postprocessor.ExecPP instead)superr	   deprecation_warning)r   argskwargs	__class__r   r   r	   $   s   zExecAfterDownloadPP.__init__)r"   r#   r$   r	   __classcell__r   r   r*   r   r%   #   s    r%   N)	commonr   utilsr   r   r   r   r   r%   r   r   r   r   <module>   s    