
    i                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlZddlZ ej        e          Zi Zded	ej        fd
Zded	ej        fdZded	ej        fdZded	ej        fdZded	ej        fdZded	ej        fdZdS )z
Archive and download handlers
    )Update)ContextTypes)ArchiveProcessor)DownloadProcessor)ConfigNupdatecontextc                   K   |j         s"| j                            d           d{V  dS |j         d                                         }|dvr"| j                            d           d{V  dS | j        j        }|g dt          |<   | j                            d|                                 d           d{V  dS )	zHandle /archive commandzyUsage: /archive <type>

Types: zip, tar, rar
Example: /archive zip

Then send files to archive. Send /done when finished.Nr   )ziptarrarz#Invalid type! Use: zip, tar, or rar)typefilesu   📦 Creating z9 archive

Send me files to add. Send /done when finished.)argsmessage
reply_textlowereffective_useriduser_archive_statesupper)r   r	   archive_typeuser_ids       !/app/handlers/archive_handlers.pyarchive_handlerr      s/     < n''D
 
 	
 	
 	
 	
 	
 	
 	
 	<?((**L000n''(MNNNNNNNNN#&G$ $ 
 .
#
#	;++-- 	; 	; 	;              c                 J   K   | j                             d           d{V  dS )zHandle /extract commanduX   📂 **Archive Extractor**

Send me an archive file to extract.
Supported: zip, tar, rarNr   r   r   r	   s     r   extract_handlerr    +   sM      
.
#
#	#          r   c                   K   |j         s"| j                            d           d{V  dS |j         d         }| j        j        }| j                            d           d{V }	 t
          j                            t          j	        d| d          }t          j        ||           d{V }|st          j        ||           d{V }|rt
          j                            t                    rt          t          d          5 }|j                            | j        j        |d	           d{V  ddd           n# 1 swxY w Y   t          j        t                     |                                 d{V  dS |                    d
           d{V  dS # t,          $ rS}t.                              d|            |                    dt3          |                      d{V  Y d}~dS d}~ww xY w)zHandle /download commandue   Usage: /download <url>

Supported:
• Direct URLs
• Streaming platforms (MX Player, Hotstar, etc.)Nr   u   ⏳ Downloading...	download_z.mp4rbu   ✅ Downloaded successfully!)chat_idvideocaptionu    ❌ Failed to download from URL!zDownload error:    ❌ Error: )r   r   r   r   r   ospathjoinr   DOWNLOAD_PATHr   download_from_streamingdownload_from_urlexistsoutput_fileopenbot
send_videoeffective_chatremovedelete	edit_text	Exceptionloggererrorstr)	r   r	   urlr   
status_msgoutput_pathsuccess
video_filees	            r   download_handlerrA   3   s     < n''A
 
 	
 	
 	
 	
 	
 	
 	
 	
,q/C#&G~001EFFFFFFFFJ;gll6#79RW9R9R9RSS *A#{SSSSSSSS 	R-?[QQQQQQQQG 
	Krw~~k22 
	Kk4(( Jk,,"14$: -                        Ik"""##%%%%%%%%%%%&&'IJJJJJJJJJJJ ; ; ;+++,,,""#9Q#9#9:::::::::::::::;sD   &B!F .E5F EF E	6F F 
G;(AG66G;c                 J   K   | j                             d           d{V  dS )zHandle /generate_link commanduR   🔗 **Direct Link Generator**

Send me a file to generate a direct download link.Nr   r   s     r   generate_link_handlerrC   ]   sM      
.
#
#	=          r   c           	        K   | j         j        }| j        j        }|t          v r|j                            |j                   d{V }t          j	        
                    t          j        |j                  }|                    |           d{V  t          |         d                             |           | j                            d|j         dt#          t          |         d                    d           d{V  dS |j                            d          r=| j                            d           d{V }	 |j                            |j                   d{V }t          j	        
                    t          j        |j                  }|                    |           d{V  t          j	        
                    t          j        d|           }t)          j        ||           d{V }	|	rt          j        |          D ]\  }
}}|D ]}t          j	        
                    |
|          }	 t/          |d	          5 }|j                            | j        j        ||
           d{V  ddd           n# 1 swxY w Y   y#  Y }xY w|                    d           d{V  ddl}|                    |           n|                    d           d{V  t          j        |           dS # t<          $ rS}t>                               d|            |                    dtC          |                      d{V  Y d}~dS d}~ww xY wdS )zHandle incoming documentsNr   u   ✅ Added: z
Total files: z-

Send more files or /done to create archive.)z.zipz.tarz.rarz.tar.gzz.tgzu   ⏳ Extracting archive...
extracted_r#   )r$   documentfilenameu#   ✅ Archive extracted successfully!r   u   ❌ Failed to extract archive!zExtract error: r'   )"r   r   r   rF   r   r1   get_filefile_idr(   r)   r*   r   r+   	file_namedownload_to_driveappendr   lenendswithUPLOAD_PATHr   extract_archivewalkr0   send_documentr3   r6   shutilrmtreer4   r7   r8   r9   r:   )r   r	   r   rF   file	file_pathr<   archive_path
output_dirr>   rootdirsr   doc_filerS   r@   s                   r   document_handlerr\   d   sJ     #&G~&H %%%[))(*:;;;;;;;;GLL!5x7IJJ	$$Y/////////G$W-44Y???n'';(, ; ; 3G <W EFF; ; ;
 
 	
 	
 	
 	
 	
 	
 	

 	 ""#NOO &?!>445PQQQQQQQQ
#	? --h.>????????D7<<(<h>PQQL((666666666f&8:Pw:P:PQQJ,<\:VVVVVVVVG M)+)<)< ! !%D$ % 
! 
!$&GLLt$<$<	!!%i!6!6 "(&-k&?&?,2,A,D-5-1 '@ '" '" !" !" !" !" !" !" !"" " " " " " " " " " " " " " "! D
! !**+PQQQQQQQQQ j)))) **+KLLLLLLLLLIl##### 	? 	? 	?LL.1..///&&'=SVV'='=>>>>>>>>>>>>>>>	?I&? &?sW   C7K= 9J	.J7JJJ
JJK= JA*K= =
MAMMc                 R  K   | j         j        }|t          v rt          |         }t          |d                   dk     r"| j                            d           d{V  dS | j                            d           d{V }	 |d         }t          j                            t          j
        d| d|           }t          j        |d         ||           d{V }|rt          j                            |          rt          |d	          5 }|j                            | j        j        |d
|                                 d           d{V  ddd           n# 1 swxY w Y   t          j        |           n|                    d           d{V  |d         D ]5}	t          j                            |	          rt          j        |	           6n_# t*          $ rR}
t,                              d|
            |                    dt1          |
                      d{V  Y d}
~
nd}
~
ww xY wt                              |d           |                                 d{V  dS # t                              |d           |                                 d{V  w xY wdS )z.Handle /done command for multi-file operationsr      zNo files to archive!Nu   ⏳ Creating archive...r   archive_.r#   u   ✅ z archive created!)r$   rF   r&   u   ❌ Failed to create archive!zArchive error: r'   )r   r   r   rM   r   r   r(   r)   r*   r   rO   r   create_archiver.   r0   r1   rR   r3   r   r4   r6   r7   r8   r9   r:   popr5   )r   r	   r   stater<   r   r/   r>   r[   rU   r@   s              r   done_handlerrd      s{     #&G%%%#G,uW~"".++,BCCCCCCCCCF!>445NOOOOOOOO
!	& =L',,"3733\33 K
 -;g\       G  	L27>>+66 	L+t,, !+33 & 5 8!) N|'9'9';'; N N N 4                        	+&&&& **+JKKKKKKKKK g $ $7>>$'' $IdOOO$  	? 	? 	?LL.1..///&&'=SVV'='=>>>>>>>>>>>>>>	?
  ##GT222##%%%%%%%%%%%  ##GT222##%%%%%%%%%%U &%sX   BG AEG E!!G $E!%A1G I- 
H3!AH.)I- .H33I- -7J$)__doc__telegramr   telegram.extr   utils.archive_utilsr   utils.download_utilsr   configr   r(   logging	getLogger__name__r8   r   DEFAULT_TYPEr   r    rA   rC   r\   rd    r   r   <module>rp      s          % % % % % % 0 0 0 0 0 0 2 2 2 2 2 2       				 		8	$	$ & <3L    6& <3L    (;6 (;L4M (; (; (; (;T 9R    <?6 <?L4M <? <? <? <?|.&v .&0I .& .& .& .& .& .&r   