U
    9d                     @   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   s<   t jj| d}|js|jrdS tjj|d}|jj}|S d S N)emailTuser)r   objectsgetis_superuseris_staffr   planZdownload_youtube_permvaluer   subscriptionZ	plan_type r   6/var/www/html/UseVoiceDocker/src/apps/process/utils.pyyt_down_allow   s    r   c                 C   s<   t jj| d}|js|jrdS tjj|d}|jj}|S d S r   )r   r   r   r   r   r   r   Zupload_youtube_permr   r   r   r   yt_up_allow   s    r   c                 C   s0   | j d}|r |dd }n| j d}|S )NZHTTP_X_FORWARDED_FOR,r   REMOTE_ADDR)METAr   split)requestZ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   )filenameZfilecharextr/   r   r   r   generate_name-   s    ,*r2   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 )r)   r*   existsmakedirsr+   system)
video_pathZimg_output_pathcommandr   r   r   generate_thumbnail_old6   s    

r9   c                 C   s~   t d|  }| \}}td d}|rz| \}}|dkrpt ||jd |jd f}t d|\}}|S |d7 }q(d S )Nr3   zreading video success ...r   Z   r'   z.jpg)cv2ZVideoCapturereadprintresizeshapeZimencode)r7   ZvidcapsuccessimagecountZ	im_resizeZ
is_successZ
im_buf_arrr   r   r   generate_thumbnail?   s    
rC   c                 C   s8   |  d\}}}t|d t|d  t| }|d S )zGet seconds from time.r(   i  <   i  )r   int)Ztime_strhmssecondsr   r   r   get_secW   s     rJ   c                 C   s   g }g }g }|D ] }| |d  | |d  qt|| krZ| ||t| | g t|dkr| d||t| g tt|d D ]}| || ||d  g qt|| S )Nr   r'   )appendmaxindexminrangelensorted)Zaudio_durationZ
parts_listZstartsZendsZnon_selected_listpartrM   r   r   r   get_audio_parts]   s    rS   c                 C   sz   zHt jj| jd}t|dkr.|dd W S t j d d  W S W n, t jk
rt   t j d d   Y S X d S )Nr
   r   z-uploaded_atr'   )	r   r   filterr   rP   order_byallr   DoesNotExist)r   Z
all_videosr   r   r   getlastmediauploadedq   s    rX   c                 C   sr   t j  dkrd S | jr8t j jtjdd | S t jj| d dkrnt jj| djtjdd | S d S )Nr   )statusr
   )	r   r   rV   rB   r   excluder   ZDeletedrT   )r   Znbrr   r   r   	get_media}   s    r[   c                 C   s8   | j rtjd}ntjj| dd}tt|jS )NZconverted_timer
   )	r   r   r   latestrT   jsondumpsr   data)r   last_uploaded_pmr   r   r   r`      s    r`   )N)r)   r.   r;   r]   loggingZapps.accounts.modelsr   Zapps.process.modelsr   r   r   Zapps.process.serializersr   Zapps.subscriptions.modelsr   	getLogger__file__loggerr   r   r   r2   r9   rC   rJ   rS   rX   r[   r`   r   r   r   r   <module>   s    (
		
