o
    a"<fC
  ã                   @   sN   d dl Zd dlmZ d dlmZ d dlmZ ddiZG dd„ deej	j
ƒZdS )	é    N©Ú	smart_str)ÚParserError)Ú
ParserBaseÚconvert_charrefsFc                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚDefaultHtmlParserc              
   C   sŠ   t jjj| fi t¤Ž || _g | _g | _d | _z|  	| j¡ |  
¡  W d S  tyD } z|j}| j ¡ | }td|t|ƒf ƒ‚d }~ww )Nz2Error while initializing HtmlParser: %s (line: %s))ÚhtmlÚparserÚ
HTMLParserÚ__init__ÚHTML_PARSER_ARGSÚcontentÚ
_css_elemsÚ	_js_elemsÚ_current_tagÚfeedÚcloseÚ	ExceptionÚlinenoÚ
splitlinesr   Úrepr)Úselfr   Úerrr   Úline© r   ú[/var/www/html/kck/venv/lib/python3.10/site-packages/compressor/parser/default_htmlparser.pyr      s   €ýzDefaultHtmlParser.__init__c                 C   sz   |  ¡ }|dv r(|dkr| j}n|dkr| j}| ||t|ƒddœ¡ || _d S |dkr;| j ||t|ƒd dœ¡ d S d S )N)ÚstyleÚscriptr   r   Ú )ÚtagÚattrsÚ
attrs_dictÚtextÚlink)Úlowerr   r   ÚappendÚdictr   )r   r   r    Útagsr   r   r   Úhandle_starttag   s*   ü
üÿz!DefaultHtmlParser.handle_starttagc                 C   s&   | j r| j | ¡ krd | _ d S d S d S ©N)r   r$   )r   r   r   r   r   Úhandle_endtag5   s   
ÿzDefaultHtmlParser.handle_endtagc                 C   s<   | j dkr|| jd d< d S | j dkr|| jd d< d S d S )Nr   éÿÿÿÿr"   r   )r   r   r   )r   Údatar   r   r   Úhandle_data9   s
   

ÿzDefaultHtmlParser.handle_datac                 C   ó   | j S r)   )r   ©r   r   r   r   Ú	css_elems?   ó   zDefaultHtmlParser.css_elemsc                 C   r.   r)   )r   r/   r   r   r   Újs_elemsB   r1   zDefaultHtmlParser.js_elemsc                 C   ó   |d S )Nr   r   ©r   Úelemr   r   r   Ú	elem_nameE   ó   zDefaultHtmlParser.elem_namec                 C   r3   )Nr!   r   r4   r   r   r   Úelem_attribsH   r7   zDefaultHtmlParser.elem_attribsc                 C   s   t |d ƒS )Nr"   r   r4   r   r   r   Úelem_contentK   s   zDefaultHtmlParser.elem_contentc                 C   s^   i }|  |¡ d|d< t|d ƒr!dd dd„ |d D ƒ¡ |d< |d dkr+d	| S d
| S )Nr   r    z %sú c                 S   s   g | ]
\}}d ||f ‘qS )z%s="%s"r   )Ú.0ÚnameÚvaluer   r   r   Ú
<listcomp>S   s    z.DefaultHtmlParser.elem_str.<locals>.<listcomp>r   r#   z<%(tag)s%(attrs)s>z$<%(tag)s%(attrs)s>%(text)s</%(tag)s>)ÚupdateÚlenÚjoin)r   r5   r   r   r   r   Úelem_strN   s   
 zDefaultHtmlParser.elem_strN)Ú__name__Ú
__module__Ú__qualname__r   r(   r*   r-   r0   r2   r6   r8   r9   rB   r   r   r   r   r      s    r   )Úhtml.parserr   Údjango.utils.encodingr   Úcompressor.exceptionsr   Úcompressor.parserr   r   r	   r
   r   r   r   r   r   Ú<module>   s    ÿ