
    Q&i                        d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlZd dlZd dlmZ  ej        e          ZdZd	Zd
 Zd Z G d dej        ej                  ZddZd Zd Z G d de          Zd Zd Zd ZdS )    N)nodes)
directives	Directive)logging)brown)status_iterator)Path   _video_thumbnailc                     || vrd S t          j        d| |                   }|st          d| |         z            t          |                    d                    |                    d          pdfS )Nz(\d+)(|%|px)$zinvalid size %r      px)rematch
ValueErrorintgroup)dkeyms      h/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinxcontrib/youtube/utils.pyget_sizer      so    
!||t
!C&))A 5*QsV3444qwwqzz??AGGAJJ.$..    c                 ~    d                     t          d |                                 D                                 S )Nz; c              3       K   | ]	}d |z  V  
dS )z%s: %sN ).0kvs     r   	<genexpr>zcss.<locals>.<genexpr>   s&      >>bHrM>>>>>>r   )joinsorteditems)r   s    r   cssr$      s3    99V>>AGGII>>>>>???r   c                       e Zd ZdS )videoN)__name__
__module____qualname__r   r   r   r&   r&   "   s        Dr   r&   c                     |d         }|d         }|d         }|d         }|                     d          r|r|}|d}i }|r|p|d         dk    rdd	t          z  d
|d         |d         z  |d         z  z  d|z  dd}ddddddd}	d                    ||d         |          t          |	          d}
n|!|d}n|d         |d         z  |d         z  df}||d         |d         z  |d         z  df}d|z  d|d         t          z   |d         fz  dd}	d                    ||d                   t          |	          d}
|d         d k    r|d         |d<   d|
d<   dt          |          d}|d         d k    r|d xx         d!|d         z  z  cc<   | j                             | j        |d"fi |           | j                             | j        |d#fi |
           | j                            d$           d S )%Naspectwidthheighturl_parametersprivacy_mode)   	   r   %z%dpxz%f%%r   z%d%srelative)zpadding-topzpadding-bottomr,   positionabsolute0z100%)r4   topleftr,   r-   borderz{}{}{}id)srcstyle)i0  r   r   )r,   r-   r9   z{}{}alignz
text-aligntrueallowfullscreenvideo_wrapper)CLASSr<   rA   z	 align-%sdiviframez</iframe></div>)getCONTROL_HEIGHTformatr$   bodyappendstarttag)selfnodeplatform_urlplatform_url_privacyr+   r,   r-   r.   	div_styler<   attrs	div_attrss               r   visit_video_noderQ   &   s   (^FME(^F*+Nxx ,$8 ,+~IU.U1X__!N2$a6!9(<vay(HIe^"	
 
	 #
 
 ??<T
>JJZZ
 

 =~!q	F1I-q	94?>1Xq	)F1I5t;Fe^q	N :F1IFF
 
 MM,tDz::ZZ
 
 G}Wi5%E
 Y I G}i000K$w-4OO000I]T]4<<)<<===I]T]4;;U;;<<<I&'''''r   c                     d S Nr   )rJ   rK   s     r   depart_video_noderT   b   s    Dr   c           
      .   dt           z  }|| j        d         vr| j        dxx         |dz   z  cc<   d| }|| j        d         vrd|z  }| j        dxx         |dz   z  cc<   | j                            |d|d|d         d|d	         d
           d S )Nz\graphicspath{ {./%s/}{./} }preamble
z\sphinxcontribzY\newcommand{%s}[3]{\begin{quote}\begin{center}\fbox{\url{#1#2#3}}\end{center}\end{quote}}{z}{r:   r.   z}
)THUMBNAIL_DIRelementsrG   rH   )rJ   rK   platformrL   foldermacrocmds          r   visit_video_node_latexr_   f   s    ,}<FT]:...j!!!Vd]2!!!(h((EDM*---jmrrj!!!S4Z/!!!I555,,,T


DQaLbLbLbcdddddr   c                   z    e Zd ZdZdZdZdZdZdZe	j
        e	j
        e	j
        e	j
        e	j
        e	j
        dZd ZdS )	VideoNz{}Tr   r   F)r,   r-   r+   r=   r.   r/   c                    | j         j        j        j        }| j        d         }| j                            |          }t          t          | d          |j	        |<   |j
                            d|j	        |                    d| j        v ro| j                            d          }t          j        d|          }|t!          d|z            t#          d |                                D                       }nd }g d}d	| j        v r1| j                            d	          }||vrt!          d
|           nd }t'          | j        d          }t'          | j        d          }	| j                            dd          }
|                     | j        d         |||	||
| j                            d                    gS )Nr   z.jpg r+   z(\d+):(\d+)zinvalid aspect ratio %rc              3   4   K   | ]}t          |          V  d S rS   )r   )r   xs     r   r    zVideo.run.<locals>.<genexpr>   s(      66a3q66666666r   )r8   centerrightr=   zinvalid alignment choices are: r,   r-   r.   r/   )r:   r+   r,   r-   r=   r.   r/   )statedocumentsettingsenv	arguments_thumbnail_urlrF   r	   rY   remote_imagesimagesadd_fileoptionsrD   r   r   r   tuplegroupsr   _node)rJ   rk   video_idurlr+   r   	alignmentr=   r,   r-   r.   s              r   runz	Video.run   s   j!*.>!$!((22!%m5F5F5F!G!G#
B 1# 6777t|##\%%h//F00Ay !:V!CDDD66188::66666FFF///	dl""L$$W--EI%% !N9!N!NOOO & Ew//$,11))*:B??

dnQ/eU>!\--n==  ? ? @ 	@r   )r'   r(   r)   rt   rm   has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacer   	unchangedoption_specrx   r   r   r   ra   ra   t   sy        ENK %%&&%$.", K@ @ @ @ @r   ra   c                 t    | j                             d                    |                     t          j        )Nz,{}: unsupported output format (node skipped))builderwarnrF   r   SkipNode)rJ   rK   r[   s      r   unsupported_visit_videor      s7    L6==hGG   .r   c                    t          | j        d          r| j        j        nt          }d} ||j        |t          t          |j                            D ]}t          | j                  |j        |         z  }|                                st          
                    | d| d           t          |d          5 }	 |                    t          j        |          j                   n3# t          j        $ r! t          
                    d| d           Y nw xY wd d d            n# 1 swxY w Y   t          
                    | d| d           d S )	Nr   zDownloading remote images...z -> z (downloading)wbzCannot download ""z (already in cache))hasattrr   r   rn   r   lenr	   outdiris_fileloggerinfoopenwriterequestsrD   contentConnectionError)apprk   iteratormsgr;   dstfs          r   download_imagesr      s   .5ckCT.U.Ujs{**[jH
(Cx)3s3;L7M7MNN > >3:!23!77{{}} 	>KK377C777888c4 <A<GGHL--56666/ < < <KK :C : : :;;;;;<< < < < < < < < < < < < < < < KK3<<C<<<====> >s6   >D, ,C-,D,--DD,DD,,D0	3D0	c                     i | j         _        t          | j                  t          z  }|                    d           | j        j                            t          |                     d S )NT)exist_ok)
rk   rn   r	   r   rY   mkdirconfightml_static_pathrH   str)r   
output_dirs     r   configure_image_downloadr      s\    CGcj!!M1Jd###J&&s:77777r   rS   ) r   docutilsr   docutils.parsers.rstr   r   sphinx.utilr   sphinx.util.consoler   r   osr   pathlibr	   	getLoggerr'   r   rE   rY   r   r$   GeneralElementr&   rQ   rT   r_   ra   r   r   r   r   r   r   <module>r      s   
			       6 6 6 6 6 6 6 6       % % % % % % ' ' ' ' ' ' 				       		8	$	$"/ / /@ @ @	 	 	 	 	EM5= 	 	 	9( 9( 9( 9(x	 	 	e e e.@ .@ .@ .@ .@I .@ .@ .@b  > > >"8 8 8 8 8r   