a
    Døg¶  ã                   @   st   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 dd„ ZG d	d
„ d
eƒZdeƒ iddeiidœZdS )z$
Draftail / contentstate conversion
é    )ÚDOM)ÚEntity)ÚAtomicBlockEntityElementHandler)Úembeds)ÚEmbedExceptionc                 C   s   t  dd|  d¡dœ¡S )z®
    Helper to construct elements of the form
    <embed embedtype="media" url="https://www.youtube.com/watch?v=y8Kyi0WNg40"/>
    when converting from contentstate data
    ÚembedZmediaÚurl)Z	embedtyper   )r   Zcreate_elementÚget)Úprops© r   úd/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/embeds/rich_text/contentstate.pyÚmedia_embed_entity   s    þþr   c                   @   s   e Zd ZdZdd„ ZdS )ÚMediaEmbedElementHandlerzl
    Rule for building an embed entity when converting from database representation
    to contentstate
    c                 C   s\   z0t  |d ¡}|j|j|j|j|j|jdœ}W n tyN   d|d i}Y n0 t	dd|ƒS )Nr   )Z	embedTyper   ZproviderNameZ
authorNameZ	thumbnailÚtitleÚEMBEDZ	IMMUTABLE)
r   Z	get_embedÚtyper   Zprovider_nameZauthor_nameZthumbnail_urlr   r   r   )ÚselfÚnameÚattrsÚstateZcontentstateZ	embed_objZ
embed_datar   r   r   Úcreate_entity#   s    ú
z&MediaEmbedElementHandler.create_entityN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s   r   zembed[embedtype="media"]Zentity_decoratorsr   )Zfrom_database_formatZto_database_formatN)r   Zdraftjs_exporter.domr   Z6wagtail.admin.rich_text.converters.contentstate_modelsr   Z7wagtail.admin.rich_text.converters.html_to_contentstater   Zwagtail.embedsr   Zwagtail.embeds.exceptionsr   r   r   ZContentstateMediaConversionRuler   r   r   r   Ú<module>   s   ÿ
ü