o
    È·eª  ã                   @   sD   d dl Z d dlmZ d dlmZ d dlZd dlZG dd„ deƒZdS )é    N)ÚService)ÚServiceMessagec                       s:   e Zd Zd
‡ fdd„	Zdd„ Zdd„ Z‡ fdd	„Z‡  ZS )ÚSonOfMMMNc                    sÚ   t t| ƒ |¡ d| j | _tj | j| j¡| _	t
 | j| j	¡ | j d¡r0d| j d¡ | _nd| _| j d¡| _| j d¡rH| j d¡| _nt | j¡| _| j d¡| _| j d¡| _| j d	¡}|sk|  ¡  d S d S )
Nz%s.logÚffmpeg_argsz/usr/local/bin/ffmpeg z!/usr/local/bin/ffmpeg -y -i %s %sÚoutput_mimetypeÚ
output_extÚoutput_bucketÚinput_bucketé   )Úsuperr   Ú__init__Úinstance_idÚlog_fileÚosÚpathÚjoinÚworking_dirÚlog_pathÚbotoÚset_file_loggerÚnameÚsdÚ
has_optionÚgetÚcommandr   r   Ú	mimetypesÚguess_extensionÚget_objr   r	   Úinput_queueÚreadÚqueue_files)ÚselfÚconfig_fileÚm©Ú	__class__© úM/var/www/ideatree/venv/lib/python3.10/site-packages/boto/services/sonofmmm.pyr      s"   ÿzSonOfMMM.__init__c                 C   sl   t j d| jj ¡ | jD ]&}t j d|j ¡ tƒ }| jr%d| jji}nd }| ||¡ | j 	|¡ qd S )NzQueueing files from %szQueueing %sÚOutputBucket)
r   ÚlogÚinfor	   r   r   r   Úfor_keyr   Úwrite)r!   Úkeyr#   Údr&   r&   r'   r    4   s   
øzSonOfMMM.queue_filesc                 C   sf   t j |¡\}}t j | j|| j ¡}| j||f }tj 	d| ¡ |  
|¡}|dkr1|| jfgS g S )Nzrunning:
%sr   )r   r   Úsplitextr   r   r   r   r   r)   r*   Úrunr   )r!   Úin_file_nameÚmsgÚbaseÚextÚout_file_namer   Ústatusr&   r&   r'   Úprocess_file@   s   
ÿ
zSonOfMMM.process_filec                    s@   t j | j¡r| jr| j | j¡}| | j¡ tt	| ƒ 
¡  d S ©N)r   r   Úisfiler   r   Únew_keyr   Úset_contents_from_filenamer   r   Úshutdown)r!   r-   r$   r&   r'   r<   L   s
   zSonOfMMM.shutdownr8   )Ú__name__Ú
__module__Ú__qualname__r   r    r7   r<   Ú__classcell__r&   r&   r$   r'   r      s
    r   )r   Úboto.services.servicer   Úboto.services.messager   r   r   r   r&   r&   r&   r'   Ú<module>   s   