HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //lib/python3.6/site-packages/pyzor/__pycache__/digest.cpython-36.opt-1.pyc
3

�Ugb��@s�dZddlmZddlZddlZddlZddlZyddlZWnek
rZddl	j
ZYnXddgZejZ
ee
d�j��Zejddkr�ejd	�ej�e_Gd
d�dej�ZGdd
�d
e�ZGdd�de�ZdS)zHandle digesting the messages.�)�print_functionN���<���utf8c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�HTMLStripperzStrip all tags from the HTML.cCs$tjj|�|j�||_d|_dS)NT)�
HTMLParser�__init__�reset�	collector�collect)�selfr
�r�/usr/lib/python3.6/digest.pyrszHTMLStripper.__init__cCs"|j�}|r|jr|jj|�dS)zKeep track of the data.N)�striprr
�append)r�datarrr�handle_data"s
zHTMLStripper.handle_datacCs&tjj|||�|j�dkr"d|_dS)N�script�styleF)rr)r
�handle_starttag�lowerr)r�tagZattrsrrrr(szHTMLStripper.handle_starttagcCs$tjj||�|j�dkr d|_dS)NrrT)rr)r
�
handle_endtagrr)rrrrrr-szHTMLStripper.handle_endtagN)�__name__�
__module__�__qualname__�__doc__rrrrrrrrr	s
r	c@s�eZdZdZddgZdZdZejd�Z	ejdej
�Zejd�Zejd	�Z
d
Zddd
�Zdd�Zdd�Zdd�Zedd��Zedd��Zedd��Zedd��ZdS)�DataDigesterzThe major workhouse class.�value�digest��z\S+@\S+z
[a-z]+:\S+z\S{10,}z\s�Nc
Cs�|dkrt}d|_t�|_g}xf|j|�D]X}xR|j�D]F}|j|�}|j|�r8y|j|j	dd��Wq8t
k
r|w8Yq8Xq8Wq*Wt|�|jkr�|j
|�n|j||�|jj�|_dS)Nr�ignore)�digest_specr!�HASHr"�digest_payloads�
splitlines�	normalize�should_handle_liner�encode�UnicodeError�len�atomic_num_lines�
handle_atomic�
handle_pieced�	hexdigest)r�msg�spec�lines�payload�lineZnormrrrrPs$

zDataDigester.__init__cCsx|D]}|j|�qWdS)zWe digest everything.N)�handle_line)rr6r8rrrr1js
zDataDigester.handle_atomicc
Cshxb|D]Z\}}xPt|�D]D}y |t|t|�d�|}Wntk
rPYqX|j|�qWqWdS)z#Digest stuff according to the spec.�dN)�range�intr/�
IndexErrorr9)rr6r5�offsetZlength�ir8rrrr2os zDataDigester.handle_piecedcCs|jj|j��dS)N)r"�update�rstrip)rr8rrrr9zszDataDigester.handle_linecCsN|jdd�}|j}|jj||�}|jj||�}|jj||�}|jjd|�j�S)N�r%)�replace�unwanted_txt_repl�longstr_ptrn�sub�
email_ptrn�url_ptrn�ws_ptrnr)�cls�s�replrrrr+}szDataDigester.normalizecCs@g}t|�}y|j|�Wnttjfk
r4YnXdj|�S)N� )r	Zfeed�UnicodeDecodeErrorr
ZHTMLParseError�join)rKrZstripperrrr�normalize_html_part�sz DataDigester.normalize_html_partcCst|�o|jt|�kS)N)r/�min_line_length)rJrKrrrr,�szDataDigester.should_handle_lineccs�x�|j�D]�}|j�dkr�|jdd�}|j�}|r>|jdd�}d}|sLd}n|j�jdd	�dkrdd}y|j||�}WnBttt	fk
r�y|jdd�}Wntk
r�w
YnXYnX|j
�dkr�|j|�Vq�|Vq
|j�r�q
|j�Vq
WdS)N�textT)�decoderBr%r&�ascii�_�-�quopri-codec�quopri�quoted-printable�quotedprintable�strictZhtml)rWrXrYrZ)
�walkZget_content_maintypeZget_payloadZget_content_charsetrCrrS�LookupErrorr.�AssertionErrorZget_content_subtyperPZis_multipart)rJr4�partr7�charset�errorsrrrr)�s2zDataDigester.digest_payloads)N)rrrr�	__slots__rQr0�re�compilerG�
IGNORECASErHrErIrDrr1r2r9�classmethodr+�staticmethodrPr,r)rrrrr 3s"



r cs eZdZdZ�fdd�Z�ZS)�PrintingDataDigesterz6Extends DataDigester: prints out what we're digesting.cs"t|jd��tt|�j|�dS)Nr)�printrS�superrhr9)rr8)�	__class__rrr9�sz PrintingDataDigester.handle_line)rrrrr9�
__classcell__rr)rkrrh�srh)rr)rr)rZ
__future__rrc�sys�codecsZhashlibr
�ImportErrorZhtml.parser�parserr'Zsha1r(r/r3Z	HASH_SIZE�version_info�	getwriter�stdoutr	�objectr rhrrrr�<module>s$