U
    VÉcÔ  ã                   @   sD   d dl m  mZ d dlmZ d dlmZmZ dd„ Z	d	dd„Z
dS )
é    N)Úomml)Úqualified_tag_nameÚnamespace_mapc           	      C   s  t  | ¡}i }| ¡ D ]ð}|jtdƒkrd }z(t| tdƒ¡ƒ}|d  tdƒ¡}W n   Y qY nX |dkrd }z‚t| tdƒ¡ƒ}t|d  tdƒ¡ƒd  tdƒ¡}||krÄ||  d7  < nd||< t  d	¡}|| › d
|_| 	d|¡ W q   Y qY qX qt  
|¡S )Núw:pzw:pStyler   zw:valZListParagraphzw:numPrzw:numIdé   ÚINJECTED_TEXTz) )ÚETÚ
fromstringÚiterÚtagr   ÚlistÚgetÚElementÚtextÚinsertÚtostring)	Zxml_strÚrootZlist_paragraph_dictÚchildZstyle_w_valÚstylesZnumId_w_valZnumPrsÚwt© r   ú6/var/www/wikiazma_server/doc_parser/utils/xml_utils.pyÚlist_paragraph_to_normal_text   s8    

ÿÿ
r   Fc                    s  t | ƒ}g }t |¡}t |¡}| ¡ D ]è}|jtdƒksF|jdkr¤|j}|rz|rd|d d dkrzd|dœ}	| |	¡ n(|r¢|d d dkr¢|d d  |7  < q(|jtdƒkrÆdd	i}	| |	¡ q(|jtd
ƒtdƒfkrðddi}	| |	¡ q(|jtdƒkrddi}	| |	¡ q(|sê|jtdƒkrêt| tdƒ¡ƒ}
|
rJ|
d nd }t	| 
d¡ƒ}t	| 
d¡ƒ}|d d }|d d }t| tdƒ¡ƒd }| 
tdƒ¡‰ ‡ fdd„|D ƒ}|rÌ|d  
d¡nd }d|||dœ}	| |	¡ q(|jtdƒkr(dt |¡dœ}	| |	¡ q(|S )Nzw:tr   éÿÿÿÿÚtyper   )r   Úvaluer   zw:tabÚtabzw:brzw:crÚbreakr   z	w:drawingz	wp:extentr   ÚcxÚcyiàó é`   za:blipzr:embedc                    s   g | ]}|j d  ˆ kr|‘qS )ZId)Úattrib)Ú.0Úitem©Úrelationr   r   Ú
<listcomp>Z   s      z'xml_to_element_list.<locals>.<listcomp>ZTargetÚimg)r   r   ÚwidthÚheightzm:oMathZequation)r   r   r	   r
   r   r   r   Úappendr   Úintr   r   Zomml_to_latext)Zdox_xml_strZrel_xml_strÚskip_imagesZnormalized_dox_xml_strÚoutputr   Zrel_rootr   Zt_textÚobjZextentsÚextentr   r   Zcx_pixelZcy_pixelZblipÚpathsÚpathr   r$   r   Úxml_to_element_list/   sh    

þ ÿ ÿ ÿüþr2   )F)Úxml.etree.ElementTreeÚetreeÚElementTreer   Zdoc_parser.utils.omml_parserr   Z"doc_parser.utils.omml_parser.utilsr   r   r   r2   r   r   r   r   Ú<module>   s   )