3
Z                 @   s"   d dl Zdd ZG dd dZdS )    Nc             C   s2   t jj| }x dD ]}|j|dt| }qW |S )N/@:z%%%02X)r   r   r   )urllibparseZquotereplaceord)xqc r   */usr/share/system-config-printer/smburi.pyurlquote   s    
r   c               @   s8   e Zd ZdddZdddZdd Zd	d
 Zdd ZdS )SMBURIN c             C   sT   |r:|s|s|s|s|rt |jdr2|dd  }|| _n| j|||||d| _d S )Nzsmb://   )userpassword)RuntimeError
startswithuri
_construct)selfr   grouphostsharer   r   r   r   r   __init__!   s    

zSMBURI.__init__c             C   sv   d}|rdt | }|r |d7 }dt ||t |f }t|dkrJ|d7 }|t |7 }t|dkrr|dt | 7 }|S )Nr   r   r   z%s%s%sr   r   )r   len)r   r   r   r   r   r   Zuri_passwordr   r   r   r   r   0   s    zSMBURI._constructc             C   s   | j S )N)r   )r   r   r   r   get_uri@   s    zSMBURI.get_uric             C   s    | j  \}}}}}| j|||S )N)separater   )r   r   r   r   r   r   r   r   r   sanitize_uriC   s    zSMBURI.sanitize_uric             C   s@  | j  }d}d}|jd}|dkrv|d | jd}|dkrZ|d | }||d | }n|d | }||d d  }|jd}d}|dkr|jd}|d | }||d d  }|dk rd}	nF|jd}
|d |
 }	||
d d  }|	jd}|d	kr|	d | }	|}tjj|tjj|	tjj|tjj|tjj|fS )
Nr   r      r   r      r#   r#   )r   findcountr   r   Zunquote)r   r   r   r   Zauthusepr   gr   hpr   r   r   r   r   G   s:    






zSMBURI.separate)Nr   r   r   r   r   )r   r   )__name__
__module____qualname__r   r   r   r    r   r   r   r   r   r       s    

r   )Zurllib.parser   r   r   r   r   r   r   <module>   s   