
    Piu                        d dl Z d dlZd dlZd dlZd dlZd dlZej                            ej        	                    ej        
                    ej                            e          d                               d dlmZ d dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)  ej*        d          d	e+d
e,de-de,de,de-de-fd            Z. ej*        d          de-de-de,de-de-d
e,fd            Z/ ej*        d          de-de-de,de-d
e,de-de,fd            Z0 ej*        d          de-de-de,de-d
e,de-de,fd            Z1dS )    Nz..)app)log_requestsend_requestrun_command	concat_ws)MovieoDatabaseRedisDatabaseSEND_QUALITY_REQUEST_TO_ADMINYOUR_REQUEST_ADDEDdownload_videoget_video_duration_secondsget_random_second finding_best_quality_for_convertresolve_2_part_requestcreate_new_file_namedetermine_encoding_settings)	LOGO_DIRMOVIEO_TELEGRAM_API
MOVIEO_CLIAUTO_SUB_CHARCHIVE_CHANNELTELEGRAM_APIDOWNLOAD_DIRMOVIEO_ENCODES_DIRQUALITIES_PYRAMID	qualities)queuesending_detailsrequested_qualitymovieo_file_id	file_namefile_idtitle_id
title_typec           
      F   | d         }t          d| d           t          |||          \  }}	|rt          d| d           t          |          \  }
}}}|r#t          ||||          \  }}}}}t          | d<   n
|}d x}x}x}}t          d| d           t          d           t          t           |           }t          |          }t          d	| d
| d| d           dt           | dt           d| d| d
d| d|dz    dz   d| d|
 dt           | z   }t          |d| d           |}g }|                    t           | |||d||di           d                    d ||dfD                       }|dk    rt          d |d d|          }nt          d ||d|          }t          j        |                    d!                                                                                    }d"|||||d#}|                    |            |S d$d%iS )&Napi_urlz%
**********************
--- download z# has begun. 
**********************z;
**********************
--- setting encoder params base on z. 
**********************z/
**********************
--- encoded file name: z 
**********************zd
**********************
--- fetching duration and choosing random timestamp. 
**********************z'
**********************
--- converting z to z with z+ codec has started. 
**********************zffmpeg  -i z -n -i z -filter_complex "[0:v]scale=:zJ,setsar=1[v];[1:v]scale=iw/9:-1[logo];[v][logo]overlay=W-w-5:H-h-5:enable=z'between(t,,<   z)'z" -c:v z -b:v z -c:a copy z4something went wrong when trying to convert file to .MVO)btnqualityrelease_typeencoderseasonepisode c                     g | ]}||S  r4   ).0ps     @/var/www/html/auto_sub_bot/celery_tasks/tasks/quality_handler.py
<listcomp>z6preparing_file_and_convert_quality.<locals>.<listcomp>,   s    PPPQaPqPPP       |zutf-8T)statusqu
combo_hashupload_listr#   r$   r<   F)printr   r   r   r   r   r   r   r   r   r   appendjoinr   hashlibsha256encode	hexdigestupperupdate)r   r   r    r!   r"   r#   r$   r&   server_file_name_bit_rateheightwidthcodecnew_file_namer,   r.   r0   epsec
random_seccommandr?   r=   outer_concatr>   results                              r7   "preparing_file_and_convert_qualityrV      s   i(G	
cI
c
c
cddd(CCa !!{N_{{{|||)DEV)W)W&&% 	4;OPXZhjt  wH  <I  <I8M3fb)<OI&&%M/33C3,3"j-jjjkkkxyyy(L)L:J)L)LMM&s++
  V)  V  VIZ  V  Vbg  V  V  V  	W  	W  	W I  I.>  I  Ix  I  Int  I  Iw|  I  I  I  Lz  Zd  Lz  Lz  gq  tv  gv  Lz  Lz  Lz  z  }L  GL  }L  }L  T\  }L  }L  i{  }L  }J  }L  }L  LGhTehhhiii!	1>9>>Xi  |H  TY  ek  xz  A{  A{  |  	}  	}  	}XXPP#4lE"JPPPQQ??$S(D!R@@LL$S(FArBBL^L$7$7$@$@AAKKMMSSUU
 *U`nv  GQ  R  Ro&&&%  r9   en_name
request_idrequested_seasonc           	         | d         }|r|| d<   || d<   || d<   d| d<   t           | d<   nbt          |||          }dd	lm}	 |rI|D ]A}
t          t
          |
d
         d| d|
d          d}|	                    t           d|           Bd| d<   | S )Nr<   r#   r$   rW   luser_idr&   r   )send_batch_messager:   zConvert Quality,r(   )chat_idfrom_chat_id
message_idcaptioncopyMessageF)r   r   celery_tasks.tasks.batch_senderr\   r   r   delay)search_resultr#   r$   rW   rX   rY   r   r<   files_dbr\   fdatas               r7    route_quality_conversion_requestrh   8   s    8$F ,$,j!&0l##*i #1i #6i  3H=NO_``FFFFFF 		, S S*$3"#A$E*EEqtEE	  #(()<mTRRRR&+M(#r9   admin_user_idrequest_type_str
title_namec                    | d         }| d         }	| d         }
|rzt          |                    d                    dk    rt          |||	|
           d S t          |d          \  }}}|t	          |||          d}t          t          d|           d S |t          |||||          dd	d
| dgdd| dgdd| dggid}t          t          d|           d S )Nr<   r=   r>   +   )r]   textsendMessageinline_keyboardu,   📥 دریافت فایل (های) سورسzreceive_source_files-)ro   callback_datau   ✅ تایید درخواستzsubmit_request-u   ❌ بستن درخواستzclose_request-)r]   ro   reply_markup)lensplitr   r   r   r   r   r
   )third_step_resri   rX   rj   rY   r   r$   rk   r<   r=   r>   r]   	movieo_idrg   s                 r7   "resolve_quality_conversion_requestrx   P   sj   H%F		B-J ?%%c**++q00":/?ZPPPPP-8Q-G-G*GY
"*:z9MM D ,mTBBBBB %1*jJZ\mo  A  A!L  `D  xB  `D  `D  E  E  F=PnblPnPnoop;Nk_iNkNkllm$

 

 	(->>>>>r9   c                    t          d           d| }d| }	t                      5 }
|
                    |          }|dk    rt          d| d           nh|
                    |	          rt          d           nC|
                    |	d           t
                              | |||||||          cd d d            S d d d            d S # 1 swxY w Y   d S )	Nz
**********************
--- considering the possibility of continuing process of submitting the request 
**********************zrequest:active:zrequest:lock:r   z
**********************
--- z3 tasks of request has left! 
**********************zL
**********************
--- request already handled. 
**********************1)r@   r	   decrgetsetrx   rc   )rv   ri   rX   rj   rY   r   r$   rk   counter_keylock_keyr	remainings               r7   $decrement_counter_and_submit_requestr   n   s   	  P  Q  Q  Q0J00K+z++H	 
vAFF;''	q==r9rrrssssUU8__ 	vdeeeeEE(C   5;;NM[egw  zJ  L]  _i  ku  v  v
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
v 
vs   BCCC)2timeshutilsysosrC   urllib.parseurllibpathrA   abspathrB   dirname__file__celery_tasks.celeryr   base.utils.funcsr   r   r   r   
base.utilsr   r	   r
   r   r   r   r   r   r   r   r   configr   r   r   r   r   r   r   r   r   taskdictstrintrV   rh   rx   r   r4   r9   r7   <module>r      s     



 				      RW__X-F-F M MNN O O O # # # # # # N N N N N N N N N N N N6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^	&! &!QT &!fi &!vy &!  EH &!  TW &!  eh &! &! &! &!P 
c s ]` nq   FI   ^a    . 
?c ?WZ ?nq ?  FI ?  ^a ?  or ?  @C ? ? ? ?: 
v vY\ vps v  HK v  `c v  qt v  BE v v v v v vr9   