U
    ?ti)                     @   sZ   d dl Z d dlmZ d dlmZ eedddZeeddd	Zeeee	ed
ddZ
dS )    N)Optional)make_media_token)namereturnc                 C   s,   | pd dd dd} | r(| d d S dS )N \_/   z
upload.mp4)replace)r    r   ,/var/www/html/luxverbi-app/services/media.pysafe_filename   s    r   )pathr   c                 C   sT   z8ddddddd| g}t j|t jdd	 }t|W S  tk
rN   Y d
S X dS )z
    Best-effort duration check using ffprobe. If ffprobe isn't installed,
    returns -1 and duration checks are skipped.
    Zffprobez-verrorz-show_entrieszformat=durationz-ofz"default=noprint_wrappers=1:nokey=1)stderrzutf-8g      N)
subprocesscheck_outputSTDOUTdecodestripfloat	Exception)r   cmdoutr   r   r   video_duration_seconds_ffprobe   s    

r   )stored_filenamepublic_base_urlsigning_secretttl_secondsr   c                 C   s"   t | ||d}|d d| S )zr
    Create a signed URL that TikTok can pull from.
    stored_filename must be a filename inside UPLOAD_DIR.
    )filenameZsecretr   r	   z/media/)r   rstrip)r   r   r   r   tokenr   r   r   build_public_media_url#   s    r#   )r   typingr   Zmedia_tokensr   strr   r   r   intr#   r   r   r   r   <module>   s   