o
    c                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ eeZdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd ZdddZdd ZdS )    N)User)MediaProcessedMediaStatus)ProcessedMediaSerializer)Subscriptionc                 C   8   t jj| d}|js|jrdS tjj|d}|jj}|S N)emailTuser)r   objectsgetis_superuseris_staffr   plandownload_youtube_permvaluer   subscription	plan_type r   7/var/www/html/docker_usevoice/src/apps/process/utils.pyyt_down_allow      r   c                 C   r   r	   )r   r   r   r   r   r   r   upload_youtube_permr   r   r   r   yt_up_allow   r   r   c                 C   s2   | j d}|r|dd }|S | j d}|S )NHTTP_X_FORWARDED_FOR,r   REMOTE_ADDR)METAr   split)requestx_forwarded_foripr   r   r   get_client_ip%   s   r%   c                 C   sv   t j| \}}|dddddddddd}ttj dd	 d
ddd }|d | | S )N.  _()&AND   :r   )ospathsplitextreplacestrdatetimenowr!   )filenamefilecharextr6   r   r   r   generate_name-   s   ,*r:   c                 C   sR   t jdst d dt j| d  d}dd|   d| }t | |S )Nzmedia/thumbnails/r   z_thumbnail.pngzffmpeg -ss 00:00:01.005 -i media/original_videos/z -frames:v 1 -q:v 2 )r0   r1   existsmakedirsr2   system)
video_pathimg_output_pathcommandr   r   r   generate_thumbnail_old6   s   

rB   c                 C   s   t d|  }| \}}td d}|r>| \}}|dkr8t ||jd |jd f}t d|\}}|S |d7 }|sd S )Nr;   zreading video success ...r   Z   r.   z.jpg)cv2VideoCapturereadprintresizeshapeimencode)r?   vidcapsuccessimagecount	im_resize
is_success
im_buf_arrr   r   r   generate_thumbnail?   s   rR   c                 C   s8   |  d\}}}t|d t|d  t| }|d S )zGet seconds from time.r/   i  <   i  )r!   int)time_strhmssecondsr   r   r   get_secW   s    rZ   c                 C   s   g }g }g }|D ]}| |d  | |d  qt|| kr-| ||t| | g t|dkrA| d||t| g tt|d D ]}| || ||d  g qIt|| S )Nr   r.   )appendmaxindexminrangelensorted)audio_duration
parts_liststartsendsnon_selected_listpartr]   r   r   r   get_audio_parts]   s   rh   c                 C   sp   z"t jj| jd}t|dkr|dd W S t j d d  W S  t jy7   t j d d   Y S w )Nr   r   z-uploaded_atr.   )	r   r   filterr   r`   order_byallr   DoesNotExist)r"   
all_videosr   r   r   getlastmediauploadedq   s   rn   c                 C   sr   t j  dkrd S | jrt j jtjdd | S t jj| d dkr7t jj| djtjdd | S d S )Nr   )statusr   )	r   r   rk   rN   r   excluder   Deletedri   )r   nbrr   r   r   	get_media}   s    rs   c                 C   s8   | j r
tjd}n
tjj| dd}tt|jS )Nconverted_timer   )	r   r   r   latestri   jsondumpsr   data)r   last_uploaded_pmr   r   r   ry      s   ry   )N)r0   r5   rD   rv   loggingapps.accounts.modelsr   apps.process.modelsr   r   r   apps.process.serializersr   apps.subscriptions.modelsr   	getLogger__file__loggerr   r   r%   r:   rB   rR   rZ   rh   rn   rs   ry   r   r   r   r   <module>   s"   ( 
		
