
    iS+                         S SK r S SKrS SK Jr  S SK Jr  S SKJr  S SKJr  S SKJ	r
  S SKJr  SSKJr  SS	KJr  S S
KJr   " S S5      rg)    Npath)walk)choice)rename)ClientSession   )LOGGER)Config)sync_to_asyncc                       \ rS rSrSS jr\S 5       rS rS rSS jr	SS jr
     SS	\S
\S\S\S\S\4S jjr     SS	\S
\S\S\S\S\4S jjrS rS rS rS rS rS rSrg)Gofile   Nc                 8    SU l         Xl        X l        S U l        g )Nzhttps://api.gofile.io/)api_url
dluploadertoken_cached_server)selfr   r   s      6/app/bot/helper/mirror_leech_utils/ddl_utils/gofile.py__init__Gofile.__init__   s    /$
"    c           	        #    U c  g[        5        IS h  vN nUR                  SU  35       IS h  vN nUR                  5       I S h  vN nUS   S:X  ay  US   S   nUR                  SU SU  35       IS h  vN nUR                  5       I S h  vN S   S:H  sS S S 5      IS h  vN   sS S S 5      IS h  vN   sS S S 5      IS h  vN   $ S S S 5      IS h  vN   S S S 5      IS h  vN   g N N N N| Nf NR NC N4! , IS h  vN  (       d  f       NH= f N?! , IS h  vN  (       d  f       NT= f NK! , IS h  vN  (       d  f       g= f7f)	NFz+https://api.gofile.io/accounts/getid?token=statusokdataidzhttps://api.gofile.io/accounts/?token=)r   getjson)r   sessionrespresacc_ids        r   is_goapiGofile.is_goapi   s.    = ??g{{=eWE  IIK'x=D( [.F&{{9&P   &*iik 18<D        #??  #?  # (  !2  #         #?? s%  EC2ED:C4D:D
C60D;C8
<D?DC:
	DD)C<
*D.D::C>;D:?ED ED:DD:!E,D8-E4D:6D8D:D<D>D: EDD	DDD:D5	$D'%D5	1D:8E:E EEEc                    #    UR                  SS5      =nS:X  a  US   $ SU;   d  SU;   a  S U l        [        SU;   a  UR                  S5      S	   5      eS
5      e7f)Nr    r   r   	rateLimiterrorzerror--   z/Response Status is not ok and Reason is Unknown)r    r   	Exceptionsplit)r   responseapi_resps      r   __resp_handlerGofile.__resp_handler+   sw      Xr22Ht;F##("g&9"&D8# NN3"
 	
 C
 	
s   AAc                   #    U R                   (       a  U R                   $ [        5        IS h  vN nUR                  U R                   S35       IS h  vN nU R	                  UR                  5       I S h  vN 5      I S h  vN nX0l         UsS S S 5      IS h  vN   sS S S 5      IS h  vN   $  N N_ N> N4 N N! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nservers)r   r   r    r   _Gofile__resp_handlerr!   )r   r"   r#   r   s       r   __getServerGofile.__getServer7   s     &&& ??g{{dll^7#;<<!00tyy{1BCC&*#	 =<< #??<1BC = #<<< #?????s   ,DB3D#C+B5C+B?8B79B?B9B?C+B;C+!D-B=.D5C+7B?9B?;C+=D?C	CC	C+D$C'%D+D1C42D>Dc           	      n  #    U R                   c  [        e[        5        IS h  vN nUR                  U R                   SU R                    35       IS h  vN nUR                  5       I S h  vN nUS   S:X  a  US   S   nUR                  U R                   SU SU R                    35       IS h  vN nUR                  5       I S h  vN nU(       a  US   S:H  OU R                  U5      I S h  vN  sS S S 5      IS h  vN   sS S S 5      IS h  vN   sS S S 5      IS h  vN   $ S S S 5      IS h  vN   S S S 5      IS h  vN   g  GN, N N N N Nd NU NF N7! , IS h  vN  (       d  f       NK= f NB! , IS h  vN  (       d  f       NW= f NN! , IS h  vN  (       d  f       g = f7f)Nzaccounts/getid?token=r   r   r   r   z	accounts/r   )r   r.   r   r    r   r!   r6   )r   check_accountr"   r#   r$   r%   resp2res2s           r   __getAccountGofile.__getAccountB   sj    ::O ??g{{<<. 5djj\B  IIK'x=D( [.F&{{<<.	&M   %*ZZ\1  - !Nd2'+':':4'@!@	        #??  #?? (   2 "A  #         #???s;  "F5EF5/FEFE?/E0AE?6E
7E?:E#E
'E#6E
7E#;E?E
E?FEFF5)E!*F5/F:E=;F?F5
FF5FE?E?E#E#E?F!F5#E:)E,*E:6E?=F?F	FF	FF5F2!F$"F2.F5c                 f  #    [         R                  " U5      I S h  vN (       d  [        SU S35      eU R                  U R	                  5       I S h  vN S   [
        R                  " U5      5      I S h  vN nU R                  US   SSS9I S h  vN   U=(       d    US   nSU0n[        [        U5      I S h  vN  H  u  pVn[
        R                  " XQ5      nUS:X  a  Un	OuUR                  [
        R                  " U5      U5      n
[
        R                  " U5      nU R                  X5      I S h  vN S   n	U R                  U	SSS9I S h  vN   XU'   U H2  n[
        R                  " X\5      nU R                  X5      I S h  vN   M4     M     US	   $  GN GNM GN, GN N Ns NY N#7f)
NzPath: z is not a valid directory
rootFolderr   publictrue	contentIdoptionvalue.code)aiopathisdirr.   create_folder_Gofile__getAccountospathbasename_Gofile__setOptionsr   r   relpathr    dirnamejoinupload_files_of_folder)r   r   folderIdfolder_data
folder_idsroot_filesrel_pathcurrFolderIdparentFolderIdfolder_namefile	file_paths                 r   upload_folderGofile.upload_folderW   s    ]]4(((fTF*CDEE ..$$&&5vt7L
 
 !$'   
 	
 	
 0{408_
$1$$===NDU~~d1H3'!+x0H(!S$ooh7&*&8&8&U UW[\''*86 (    (48$"KK3	11)JJJ  >" 6""; ) '
	
 > !V Ks   F1F6F1F #F17F#8F1F&)F1=F)>A9F17F+8F1F-7F1F/F1 F1#F1&F1)F1+F1-F1/F1r   rT   descriptionpasswordtagsexpirec                   #    U R                  U R                  5       I S h  vN S   [        R                  R	                  [        R                  R                  U5      5      S   5      I S h  vN nU R                  US   SSS9I S h  vN   U(       a  [        U5      S:  a  [        S5      eU R                  5       I S h  vN S	   n[        U5      S
   n	[        R                  " S5      I S h  vN   0 n
U R                  =(       d    S=n(       a  XS'   U=(       d    US   nX*S'   U(       a  X:S'   U(       a  XJS'   U(       a  XZS'   U(       a  XjS'   U R                  R                  (       a  g [         R"                  " [         R$                  " U5      [         R
                  " U5      R'                  SS5      5      n[)        X5      I S h  vN   SU R                  l        U R                  R-                  SU	 S3USU
5      I S h  vN nU R/                  U5      I S h  vN $  GN GN GN GNo GNC Ng N. N7f)Nr@   r   r   rA   rB   rC   r	   &Password Length must be greater than 4r5   nameffffff?r)   r   rT   rb   rc   rd   re    rG   https://.gofile.io/contents/uploadfiler^   )rK   rL   osr   splitextrN   rO   len
ValueError_Gofile__getServerr   asynciosleepr   r   is_cancelledrM   rR   rQ   replace	aiorenamelast_uploadedupload_aiohttpr6   )r   r   rT   rb   rc   rd   re   rU   r5   serverreq_dictr   new_pathupload_files                 r   r|   Gofile.upload_filew   s     !..$$&&5GGRWW--d34Q7
 
 !$'   
 	
 	
 H)EFF ))++Y7(mmC   JJ$"$5$ %W0{40'&1]##+Z #V!'X??'';;NN4 &//$"7"?"?S"I
 '''()% OO::vh<=	
 
 ((555Q '
	
 , ( 	(
 6s   H>H)AH>.H,/H>
H/8H>H2.H>2H53CH>H8:H>H:H>$H<%H>,H>/H>2H>5H>8H>:H><H>c                 H  #    U(       a  [        U5      S:  a  [        S5      eU R                  5       I S h  vN S   n[        U5      S   n[        R
                  " S5      I S h  vN   0 n	U R                  =(       d    S=n
(       a  XS'   U(       a  X)S'   U(       a  X9S	'   U(       a  XIS
'   U(       a  XYS'   U(       a  XiS'   U R                  R                  (       a  g [        R                  " [        R                  " U5      [        R                  " U5      R                  SS5      5      n[        X5      I S h  vN   SU R                  l        U R                  R!                  SU S3USU	5      I S h  vN nU R#                  U5      I S h  vN $  GN_ GN3 N^ N% N7f)Nr	   rg   r5   rh   ri   r)   r   rT   rb   rc   rd   re   rj   rG   r   rk   rl   r^   )ro   rp   rq   r   rr   rs   r   r   rt   rM   rR   rQ   rN   ru   rv   rw   rx   r6   )r   r   rT   rb   rc   rd   re   r5   ry   rz   r   r{   rS   s                r   rS   Gofile.upload_files_of_folder   sn     H)EFF ))++Y7(mmC   JJ$"$5$ %W#+Z &1]##+Z #V!'X??'';;NN4 &//$"7"?"?S"I
 '''()%'+'E'Evh<=	(
 "
 (()?@@@= , ( 	("
 AsX   5F"F.F"&F'CF"=F>:F"8F9F"F F"F"F"F" F"c                   #    U R                  U R                  5      I S h  vN (       d  [        S5      e[        R                  " U5      I S h  vN (       a;  U R                  US9I S h  vN =n(       a  UR                  SS5      (       a  US   $ OF[        R                  " U5      I S h  vN (       a#  U R                  US9I S h  vN =n(       a  SU 3$ U R                  R                  (       a  g [        S5      e N N N NY N?7f)N/Invalid Gofile API Key, Recheck your account !!r   downloadPageFzhttps://gofile.io/d/zKFailed to upload file/folder to Gofile API, Retry or Try after sometimes...)r&   r   r.   rI   isfiler|   r    rJ   r`   r   rt   )r   r_   gCodes      r   uploadGofile.upload   s     ]]4::...MNN	***#//Y/????UYYF F ^,,==+++"00i0@@@u@-eW55??''Y
 	
 / +? ,@sX   DD-DDD+D,AD-D.D	D	
8DDDD	Dc                   #    U R                   c  [        S5      e[        5        IS h  vN nUR                  U R                   S3U R                   UUS.S9 IS h  vN nU R                  UR                  5       I S h  vN 5      I S h  vN sS S S 5      IS h  vN   sS S S 5      IS h  vN   $  N NW N6 N, N N! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nr   zcontents/createFolder)r   r\   
folderNameurlr   r   r.   r   postr   r6   r!   )r   r\   r   r"   r#   s        r   rK   Gofile.create_folder   s     ::MNN ??g||||n$9:!ZZ&4", $   !00tyy{1BCC   #?? 2CC #   #?????   'DB3D0C+B5C+!B? B7B?B9B?C+B;C+!D-B=.D5C+7B?9B?;C+=D?C	CC	C+D$C'%D+D1C42D>Dc                 <  #    U R                   c  [        S5      eUS;  a  [        SU 35      e[        5        IS h  vN nUR                  U R                   SU S3U R                   UUS.S9 IS h  vN nU R                  UR                  5       I S h  vN 5      I S h  vN sS S S 5      IS h  vN   sS S S 5      IS h  vN   $  N NW N6 N, N N! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nr   )rh   rb   rd   rA   expiryrc   z"Invalid GoFile Option Specified : 	contents/z/update)r   	attributeattributeValuer   )r   r.   r   putr   r6   r!   )r   rD   rE   rF   r"   r#   s         r   __setOptionsGofile.__setOptions   s     ::MNN 
 
 @IJJ ??g{{||nIi[@!ZZ!'&+ #   !00tyy{1BCC   #?? 2CC #   #?????s   ;DC
D3D4C5D8CCC#C$C'D3C4D8DCDDCCDDC-	CC-	)D0D;C><DDD	DDc           	        #    U R                   c  [        S5      e[        5        IS h  vN nUR                  U R                   SU SU R                    S3S9 IS h  vN nU R                  UR                  5       I S h  vN 5      I S h  vN sS S S 5      IS h  vN   sS S S 5      IS h  vN   $  N NW N6 N, N N! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nr   r   z&token=z&cache=true)r   )r   r.   r   r    r   r6   r!   r   rD   r"   r#   s       r   get_contentGofile.get_content  s     ::MNN ??g{{||nIi[

|;W #  !00tyy{1BCC   #?? 2CC #   #?????s   'DB4D1C,B6C,"C B8C B:C C,B<C,"D.B>/D6C,8C :C <C,>D C	C	C	C,D%C(&D,D2C53D?Dc                   #    U R                   c  [        S5      e[        5        IS h  vN nUR                  U R                   S3U R                   UUS.S9 IS h  vN nU R                  UR                  5       I S h  vN 5      I S h  vN sS S S 5      IS h  vN   sS S S 5      IS h  vN   $  N NW N6 N, N N! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nr   zcontents/copy)r   
contentsIdrT   r   r   )r   r   folderIdDestr"   r#   s        r   copy_contentGofile.copy_content  s     ::MNN ??g||||nM2!ZZ", , $   !00tyy{1BCC   #?? 2CC #   #?????r   c                   #    U R                   c  [        S5      e[        5        IS h  vN nUR                  U R                   SU 3SU R                   0S9 IS h  vN nU R                  UR                  5       I S h  vN 5      I S h  vN sS S S 5      IS h  vN   sS S S 5      IS h  vN   $  N NW N6 N, N N! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nr   r   r   r   )r   r.   r   deleter   r6   r!   r   s       r   delete_contentGofile.delete_content*  s     ::MNN ??g~~||nIi[9tzz* &   !00tyy{1BCC	   #?? 2CC	 #   #?????r   )r   r   r   r   )NN)F)N)r)   r)   r)   r)   r)   )__name__
__module____qualname____firstlineno__r   staticmethodr&   r6   rq   rL   r`   strr|   rS   r   rK   rO   r   r   r   __static_attributes__ r   r   r   r      s    #  "

	*#F 2626 26 	26
 26 26 26n +A+A +A 	+A
 +A +A +AZ
$DD0DD	Dr   r   )rm   rr   r   rM   r   randomr   aiofiles.osrI   r   rv   aiohttpr   r)   r
   core.config_managerr   bot.helper.ext_utils.bot_utilsr   r   r   r   r   <module>r      s4    	     ' + !  * 8bD bDr   