U
    wi                     @   s>   d dl Z d dlmZ d dlmZ d dlmZ G dd dZdS )    N)shuffle)Path)dequec                   @   s   e Zd ZU e Zeed< edZeed< ee	eB ddddZ
eedd	d
Zedd Zeee dddZeedB dddZdS )PROXYproxysz	proxy.txt
proxy_fileN)proxy_file_pathreturnc                 C   s   t |tr|nt|| _d S N)
isinstancer   r   )clsr    r   S/var/www/html/lefter/venv/lib/python3.8/site-packages/pyutilities/telethon/proxy.pyset_proxy_file
   s    zPROXY.set_proxy_file)r	   c                 C   s   |   | _t| j t| jS r
   )get_list_proxyr   r   lenr   r   r   r   load   s    

z
PROXY.loadc                  G   sh   t jjt jjd}|| d }|dkr:td| d  || d t| d | d | d  d	d
}|S )zD example : 
        socks5:127.0.0.1:0000:username:password
        )Zsocks5httpr   NzProxy Type invalid :             T)
proxy_typeaddrportusernamepasswordZrdns)python_socks	ProxyTypeZSOCKS5ZHTTPget
ValueErrorintstrip)argsZproxy_typesr   
proxy_dictr   r   r   r%      s    

zPROXY.proxy_dictc              	      s>   t tjd$}dd   fdd| D }W 5 Q R X t|S )Nrc                 S   s
   t j|  S r
   )r   r%   )xr   r   r   <lambda>3       z&PROXY.get_list_proxy.<locals>.<lambda>c                    s   g | ]} | d qS ):)split).0r'   Z
set_proxysr   r   
<listcomp>4   s     z(PROXY.get_list_proxy.<locals>.<listcomp>)openr   r   	readlinesr   )r   pproxyr   r-   r   r   /   s     zPROXY.get_list_proxyc                 C   s4   z| j d | j d W S  tk
r.   Y d S X d S )Nr   )r   rotate
IndexErrorr   r   r   r   getProxy9   s
    zPROXY.getProxy)__name__
__module____qualname__r   r   __annotations__r   r   classmethodstrr   r"   r   staticmethodr%   dictr   r6   r   r   r   r   r      s   

	r   )r   randomr   pathlibr   collectionsr   r   r   r   r   r   <module>   s   