
    i                         d dl Z d dlmZmZ e j                  j                  d      ZdeddfdZde	dee	z  d	ed
edef
dZ
	 dde	dee	z  d	ed
edeee      dee   fdZdededefdZy)    N)IterableOptionalworkdirpathreturnc                     t         j                  j                  |       }|r8t         j                  j                  |      st        j                  |d       y y y )NT)exist_ok)osr   dirnameexistsmakedirs)r   parents     /app/storage.pyensure_parent_dirr      s;    WW__T"FbggnnV,
FT* -v    user_id
db_file_id
video_nameextc           
          t        |      }t        j                  j                  t        j                  j	                  t
        t        |       || d|             S )N.)strr
   r   abspathjoinWORKDIR_ROOT)r   r   r   r   _ids        r   get_video_pathr      sE    
j/C77??
\3w<AcU6KL r   processed_suffixesc                 6   t        | |||      }t        j                  j                  |      }t        j                  j	                  |      sy|ddd| f}t        j
                  |      D ]Z  t        fd|D              st        j                  j                  |      }t        j                  j	                  |      sX|c S  t        j                  j                  || d|       |fD ]%  }t        j                  j	                  |      s#|c S  y)u   
    Ищет обработанный или исходный видеофайл в рабочей директории пользователя.
    Nz_edited.mp4z_edited.movz_edited.c              3   @   K   | ]  }j                  |        y wN)endswith).0sfxfiles     r   	<genexpr>z"find_video_file.<locals>.<genexpr>(   s     @-?ct}}S!-?s   )r   r
   r   r   r   listdiranyr   )	r   r   r   r   r   	base_pathdir_pathr   r%   s	           @r   find_video_filer+      s     w
JDIwwy)H77>>(#!+]hse<LM

8$@-?@@77<<$/Dww~~d#	 % 	X*XcU;< 77>>$K r   
video_pathserver_video_basec                    t         j                  j                  t              }t         j                  j	                  t         j                  j                  |       |      }|j                  d      s|dz  }||j                  dd      z   S )uu   Строит публичный URL видео: SERVER_VIDEO_BASE + относительный путь от workdir./\)r
   r   r   r   relpathr"   replace)r,   r-   workdir_absrels       r   build_public_video_urlr5   6   sd    ''//,/K
''//"''//*5{
CC%%c*S s{{4555r   r!   )r
   typingr   r   r   r   r   r   r   intr   r+   r5    r   r   <module>r9      s    	 % wwy)+C +D +C S3Y C c VY  37c	  
	
 !#/ c]B6s 6s 6s 6r   