o
    \|                     @   sD   d dl Z d dlmZ d dlmZ G dd deZG dd deZdS )    N)settings)html_minifyc                   @   s&   e Zd ZdddZdd Zdd ZdS )	MarkRequestMiddlewareNc                 C   
   || _ d S Nget_responseselfr    r   I/var/www/html/kck/venv/lib/python3.10/site-packages/htmlmin/middleware.py__init__      
zMarkRequestMiddleware.__init__c                 C   s   |  | | |}|S r   )process_requestr   r
   requestresponser   r   r   __call__   s   

zMarkRequestMiddleware.__call__c                 C   s
   d|_ d S )NT)_hit_htmlmin)r
   r   r   r   r   r      r   z%MarkRequestMiddleware.process_requestr   )__name__
__module____qualname__r   r   r   r   r   r   r   r      s    
r   c                   @   s.   e Zd Zd
ddZdd Zdd Zdd	 ZdS )HtmlMinifyMiddlewareNc                 C   r   r   r   r	   r   r   r   r      r   zHtmlMinifyMiddleware.__init__c                 C   s   |  |}| || |S r   )r   process_responser   r   r   r   r   #   s   
zHtmlMinifyMiddleware.__call__c                 C   s   z|j }W n
 ty   Y dS w ttdr-tjD ]}t|}||j	dr,d} nqd|
ddv }t|dr?|o>|j}|oB|S )NFEXCLUDE_FROM_MINIFYING/z	text/htmlzContent-Type minify_response)r   AttributeErrorhasattrr   r   recompilematchpathlstripgetr   )r
   r   r   req_okurl_patternregexresp_okr   r   r   can_minify_response*   s    





z(HtmlMinifyMiddleware.can_minify_responsec                 C   s^   t tdtj }t tdd}t tdd}|r-| ||r-t|j| |d|_t|j|d< |S )NHTML_MINIFYKEEP_COMMENTS_ON_MINIFYINGFHTML_MIN_PARSERhtml5lib)ignore_commentsparserzContent-Length)getattrr   DEBUGr*   r   contentlen)r
   r   r   minifykeep_commentsr0   r   r   r   r   <   s   z%HtmlMinifyMiddleware.process_responser   )r   r   r   r   r   r*   r   r   r   r   r   r      s
    
r   )r    django.confr   htmlmin.minifyr   objectr   r   r   r   r   r   <module>   s
   