o
    jM                     @   sX   d dl Z d dlZd dlmZ d dlmZ d dlZd
ddZdd Ze	d	kr*e  dS dS )    N)SMBConnectionFactory)loggerTc              	      sF  t | }| }| }|4 I d H  | I d H \}}|d ur$|||I d H \}}|d ur4||d u r;|j}|du rLtjd| |jdddd}t|d2}	|	 2 z$3 d H W \}
}|d urd||
d u rj n|	
|
 |du rz|t|
 qV6 W d    n1 sw   Y  W d   I d H  d S 1 I d H sw   Y  d S )NTzDownloading %sBi   )desctotalunit
unit_scaleunit_divisorwb)r   from_urlget_connectionget_fileloginopennametqdmsizeread_chunkedwriteupdatelen)urloutfilenameprogresssmburl
connectionsmbfile_errpbaroutfiledata r"   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/examples/smbgetfile.pyamain
   s:   

.r$   c                  C   s   dd l } | jdd}|jddddd |jdd	d
d |jdddd |jddd | }|jdkr9ttj |jdkrUt	d td t
 d tjtjd t
t|j|j d S )Nr   zSMB file downloader)descriptionz-vz	--verbosecount)actiondefaultz
--progress
store_truezShow progress)r'   helpz-oz
--out-filezOutput file name. Optional.)r*   r   zgSMB URL with full file path. Example: smb2+ntlm-password://TEST\Administrator:pw@10.10.10.1/C$/test.txt      zsetting deepdebugT)level)argparseArgumentParseradd_argument
parse_argsverboser   setLevelloggingDEBUGprintasyncioget_event_loop	set_debugbasicConfigrunr$   r   out_file)r.   parserargsr"   r"   r#   main(   s   


r?   __main__)T)
r7   r4   !aiosmb.commons.connection.factoryr   aiosmbr   r   r$   r?   __name__r"   r"   r"   r#   <module>   s   

