o
    �õ±j‹  ã                   @   s¼   d dl Z d dlZd dlZd dlZd dlZG dd„ de jƒZG dd„ dƒZG dd„ deƒZG dd	„ d	eƒZ	G d
d„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    Nc                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	ÚScannerResultTypeÚSTARTEDÚERRORÚDATAÚPROGRESSÚFINISHEDÚINFOÚ
TARGETDONEN)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r	   © r   r   ú™/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asysocks/unicomm/common/scanner/common.pyr      s    r   c                   @   s(   e Zd Zd	dd„Zdd„ Zd
dd„ZdS )ÚScannerResultNc                 K   s    || _ t|ƒ| _|| _|| _d S ©N)ÚtypeÚstrÚresidÚdataÚkwargs)Úselfr   r   r   r   r   r   r   Ú__init__   s   

zScannerResult.__init__c                 C   s   || j v r
| j | S d S r   )r   )r   Úkeyr   r   r   Úget_extra_info   s   

zScannerResult.get_extra_infoú	c                 C   s   t ƒ ‚r   )ÚNotImplementedError©r   Ú	separatorr   r   r   Úto_line   s   zScannerResult.to_liner   ©r   )r
   r   r   r   r   r   r   r   r   r   r      s    
r   c                   @   ó   e Zd Zdd„ Zddd„ZdS )ÚScannerStartedc                 C   ó   t  | tj|¡ d S r   )r   r   r   r   ©r   Úscannernamer   r   r   r       ó
   ýzScannerStarted.__init__r   c                 C   ó   |  dd| j g¡S )Nr   ú%s©Újoinr   r   r   r   r   r   &   ó   zScannerStarted.to_lineNr   ©r
   r   r   r   r   r   r   r   r   r!      ó    r!   c                   @   r    )ÚScannerFinishedc                 C   r"   r   )r   r   r   r   r#   r   r   r   r   *   r%   zScannerFinished.__init__r   c                 C   r&   )Nr   r'   r(   r   r   r   r   r   0   r*   zScannerFinished.to_lineNr   r+   r   r   r   r   r-   )   r,   r-   c                   @   s&   e Zd Zdd„ Zd	dd„Zdd„ ZdS )
ÚScannerErrorc                 C   s@   t  | tj||¡ d | _t|tƒdu r|j| _t|ƒ| _	d S d S )NT)
r   r   r   r   Ú	tracebackÚ
isinstanceÚ	ExceptionÚ__traceback__Úreprr   )r   r   Úerrorr   r   r   r   4   s   üþzScannerError.__init__r   c                 C   ó   |  dt| jƒt| jƒg¡S )Nr   )r)   r   r   r   r   r   r   r   r   @   ó   zScannerError.to_linec                 C   s    | j d urd t  | j ¡¡S d S )NÚ )r/   r)   Ú	format_tb©r   r   r   r   Úto_tracebackC   s   
ÿzScannerError.to_tracebackNr   )r
   r   r   r   r   r:   r   r   r   r   r.   3   s    
r.   c                   @   sN   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zddd„Zdd„ Z	dd„ Z
dS )ÚScannerDatac                 K   s    t j| tj|fd|i|¤Ž d S )Nr   )r   r   r   r   )r   r   r   r   r   r   r   r   H   s   ýü
ûzScannerData.__init__c                 C   s(   z| j  ¡ W S    tt| j ƒjƒ Y S r   )r   Úget_namer   r   r
   r9   r   r   r   r<   Q   s   zScannerData.get_namec                 C   s:   z| j  ¡ W S    dt d¡ ¡ tj ¡  d¡f  Y S )Nzscandata_%s_%s.biné   z%Y%m%d_%H%M%S)r   Ú	get_fnameÚosÚurandomÚhexÚdatetimeÚnowÚstrftimer9   r   r   r   r>   W   s   &zScannerData.get_fnamec                 C   s   z| j  ¡ W S    Y d S r   )r   Ú	get_fdatar9   r   r   r   rE   ]   s   zScannerData.get_fdatac                 C   s"   z| j  ¡ W S    t| j ƒ Y S r   )r   r   r   r9   r   r   r   Ú__flatten_datac   s   zScannerData.__flatten_datar   c                 C   s<   d}|   ¡  d¡D ]}| ¡ }|| t| jƒ|g¡7 }q	|S )Nr7   Ú
)Ú_ScannerData__flatten_dataÚsplitÚstripr)   r   r   ©r   r   ÚresÚliner   r   r   r   i   s
   zScannerData.to_linec                 C   sL   z| j tt| jƒjƒ| j ¡ dœW S    | j tt| jƒjƒ|  ¡ dœ Y S )N)r   Úrestyper   )r   r   r   r   r
   Úto_dictrH   r9   r   r   r   rO   q   s   ý
ýzScannerData.to_dictc                 C   s   t  |  ¡ ¡S r   )ÚjsonÚdumpsrO   r9   r   r   r   Úto_json   s   zScannerData.to_jsonNr   )r
   r   r   r   r<   r>   rE   rH   r   rO   rR   r   r   r   r   r;   G   s    	
r;   c                   @   s&   e Zd Zdd„ Zdd„ Zd	dd„ZdS )
ÚScannerProgressc                 C   s    t  | tj|¡ || _|| _d S r   )r   r   r   r   ÚtotalÚcurrent)r   r$   rT   rU   r   r   r   r   ƒ   s   ý
zScannerProgress.__init__c                 C   s(   | j d u s
| j dkrdS | j| j  d S )Nr   Úxéd   )rT   rU   r9   r   r   r   Ú
to_percentŒ   s   zScannerProgress.to_percentr   c                 C   s    |  dd| j| j|  ¡ f g¡S )Nr   z%s\%s (%s%%))r)   rT   rU   rX   r   r   r   r   r   ‘   s    zScannerProgress.to_lineNr   )r
   r   r   r   rX   r   r   r   r   r   rS   ‚   s    	rS   c                   @   r    )ÚScannerInfoc                 C   s   t  | tj||¡ d S r   )r   r   r   r   )r   r   Úinfor   r   r   r   •   s   üzScannerInfo.__init__r   c                 C   sD   d}t | jƒ d¡D ]}| ¡ }|| dt | jƒ|g¡d 7 }q
|S )Nr7   rG   r   z
)r   r   rI   rJ   r)   r   rK   r   r   r   r   �   s
    zScannerInfo.to_lineNr   r+   r   r   r   r   rY   ”   ó    rY   c                   @   r    )ÚScannerTargetDonec                 C   s   t  | tj|¡ || _d S r   )r   r   r   r	   Útarget)r   r   r]   r   r   r   r   ¦   s   ý
zScannerTargetDone.__init__r   c                 C   r5   )Nr	   )r)   r   r   r]   r   r   r   r   r   ®   r6   zScannerTargetDone.to_lineNr   r+   r   r   r   r   r\   ¥   r[   r\   )Úenumr?   rB   r/   rP   ÚEnumr   r   r!   r-   r.   r;   rS   rY   r\   r   r   r   r   Ú<module>   s    	

;