o
    j:                     @   s^   d dl mZ d dlmZ d dlmZ d dlmZ defddZ	dd	 Z
d
e	fdefddZdS )    )SMBDirectory)SMBConnection)SMBFile)minidomdatac                    s   d S )N )r   r   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/commons/utils/cpasswd.pydummy_print_cb   s   r	   c              
   C   s   g }t |}|jd j}dd }|jD ])}dd |jD D ]}|dD ]}||d}	||d}
||	|
| |d	 q%qq|S )
Nr   c                 S   s   |  |d ur|  |S dS )N )getAttribute)element	attributer   r   r   <lambda>       zparse_cpasswd.<locals>.<lambda>c                 S   s   g | ]
}t |tjr|qS r   )
isinstancer   Element).0cr   r   r   
<listcomp>   r   z!parse_cpasswd.<locals>.<listcomp>
PropertiesuserName	cpassword)usernamer   filenamexmltype)r   parseString
childNodestagNamegetElementsByTagNameappend)r   r   resultsrootr   read_or_emptytopnodetaskpropertyr   r   r   r   r   parse_cpasswd
   s$   





r&      
connectionc                 C  s  zd| j  df }t|}|j| |d2 z3 d H W \}}}|d ur%q|dkr|jddu r||jI d H  t|j}|	| I d H \}	}|d urNq|
 I d H \}
}|d ur\q| I d H  |
jddd	}
|
 d
du rtqzt|j|
}W n ty } z|d| I d H  W Y d }~qd }~ww |D ]}|d
ddkrq|d |d |d
 |d d fV  qq6 W d S  ty } zd d d d |fV  W Y d }~d S d }~ww )Nz\\%s\%sSYSVOL)depthfilez.xmlTzutf-8ignore)errorsr   Fz[-] Error parsing xml file: %sr
   r   r   r   )targetget_hostname_or_ipr   from_uncpathlist_rfullpathendswithunc_pathr   openreadclosedecodelowerfindr&   	Exceptionget)r(   r*   print_cbuncpathsysvolpathotypeerrr+   _r   r    eresultr   r   r   find_cpasswd   sL   
 "rF   N)#aiosmb.commons.interfaces.directoryr   aiosmb.connectionr   aiosmb.commons.interfaces.filer   xml.domr   strr	   r&   rF   r   r   r   r   <module>   s    