U
    æ¢-dÂ  ã                   @   s   ddd„Z dS )é   c                 C   sÐ  dd l }dd l}|  dd¡ dd¡ dd¡} | dd¡ dd¡ dd¡}|j d|  ¡ ¡ } |j d| ¡ ¡ }| dd„ | d |d ¡}g }d	}d	}d
}	| ¡ D ]\}
}}}}|}|
dkrØ|d|||…  d 7 }n\|
dkrú|d| ||…  d 7 }n:|
dkr4|d| ||…  d 7 }|d|||…  d 7 }d|ksHd|krX| |¡ d	}q¢d|kr¢|j	d
d}|d }| |¡ |t
|ƒd  }|d }|dkr¢| d¡ q¢q¢d	 |¡}| d¡}| dd¡}|S )Né    z<br>Ú
z<br/>z<br />z<html>c                 S   s   | dkS )Nú © )Úxr   r   ú./util/htmldiff.pyÚ<lambda>	   ó    zhtmldiff.<locals>.<lambda>Ú TÚinsertz<ins>z</ins>Údeletez<del>z</del>Úreplace)Úkeependsé   z...z
 z<br>
)ÚdifflibZ	lxml.htmlr   ZhtmlZ
fromstringZtext_contentZSequenceMatcherZget_opcodesÚappendÚ
splitlinesÚlenÚjoinÚstrip)ÚaÚbÚlimitr   ZlxmlZseqmÚoutputZchangeZprev_changeZ	clear_strZopcodeZa0Za1Zb0Zb1Z
change_arrÚresr   r   r   Úhtmldiff   sH    





r   N)r   )r   r   r   r   r   Ú<module>   r	   