Ë
    úmxiH  ã                  ó¤   — d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ dZdZd	Zdd
„Zdd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)é    )ÚannotationsN)ÚPath)Úruntime)Úcaching)Úcalc_md5z3\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}z(\d{2}:\d{2}:\d{2}),(\d{3}))ú.srtú.vttc                óü  — t        | t        «      rt        j                  | «      } t        | t        «      r$t        j                  | j                  d«      «      } | j                  d«       | j                  d«      }	 |j                  d«      j                  «       }|j                  d«      }t        |«      dk\  r3|d   j                  «       r t        j                  t         |d   «      }|ryy# t        $ r Y yw xY w)	Núutf-8r   é!   Fú
é   é   T)Ú
isinstanceÚbytesÚioÚBytesIOÚstrÚencodeÚseekÚreadÚdecodeÚstripÚUnicodeDecodeErrorÚsplitÚlenÚisdigitÚreÚsearchÚSRT_VALIDATION_REGEX)ÚstreamÚheaderÚ
header_strÚlinesÚmatchs        ú\/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/elements/lib/subtitle_utils.pyÚ_is_srtr'   $   sÕ   € ä�&œ%Ô Ü—‘˜FÓ#ˆô �&œ#ÔÜ—‘˜FŸM™M¨'Ó2Ó3ˆð ‡K�K�„Nð
 �[‰[˜‹_€FðØ—]‘] 7Ó+×1Ñ1Ó3ˆ
ð ×Ñ˜TÓ"€Eô ˆ5ƒz�Q‚˜5 ™8×+Ñ+Ô-Ü—	‘	Ô.°°a±Ó9ˆÙØàøô ò áðús   Á=C/ Ã/	C;Ã:C;c                óN  — t        | t        «      r	 | j                  d«      } t        | t
        «      st        dt        | «      › d�«      ‚t        j                  t        d| «      }d|z   }|j                  «       j                  d«      S # t        $ r}t	        d«      |‚d}~ww xY w)a†  
    Convert subtitles from SubRip (.srt) format to WebVTT (.vtt) format.
    This function accepts the content of the .srt file either as a string
    or as a BytesIO stream.

    Parameters
    ----------
    srt_data : str or bytes
        The content of the .srt file as a string or a bytes stream.

    Returns
    -------
    bytes
        The content converted into .vtt format.
    r   z+Could not decode the input stream as UTF-8.Nz.Input must be a string or a bytes stream, not ú.z\1.\2zWEBVTT

)r   r   r   r   Ú
ValueErrorr   Ú	TypeErrorÚtyper   ÚsubÚSRT_CONVERSION_REGEXr   r   )Úsrt_dataÚeÚvtt_dataÚvtt_contents       r&   Ú_srt_to_vttr3   G   sª   € ô$ �(œEÔ"ð	SØ—‘ wÓ/ˆHô �h¤Ô$äØ<¼TÀ(»^Ð<LÈAÐNó
ð 	
ô
 �v‰vÔ*¨H°hÓ?€Hð  Ñ)€Kà×ÑÓ×%Ñ% gÓ.Ð.øô "ò 	SÜÐJÓKÐQRÐRûð	Sús   ’B
 Â
	B$ÂBÂB$c                óV  — t         j                  j                  | «      rˆt        | «      }|j                  j                  «       }|t        vr$t        d|› ddj                  t        «      › �«      ‚t        | d«      5 }|j                  «       }ddd«       |dk(  rt        «      S S t        | t        «      rt        d| › d�«      ‚| j                  «       }|j                  d	«      s|d
k(  r|j                  d«      S t!        |«      rt        |«      S t        d«      ‚# 1 sw Y   Œ’xY w)z:Handles string data, either as a file path or raw content.zIncorrect subtitle format z5. Subtitles must be in one of the following formats: z, ÚrbNr   zFile z does not exist.ÚWEBVTTÚ r   z=The provided string neither matches valid VTT nor SRT format.)ÚosÚpathÚisfiler   ÚsuffixÚlowerÚSUBTITLE_ALLOWED_FORMATSr*   ÚjoinÚopenr   r3   r   r   Ú
startswithr   r'   )Údata_or_pathr9   Úfile_extensionÚfileÚcontentÚcontent_strings         r&   Ú_handle_string_or_path_datarF   n   s  € ä	‡w�w‡~�~�lÔ#Ü�LÓ!ˆØŸ™×*Ñ*Ó,ˆàÔ!9Ñ9ÜØ,¨^Ð,<ð =1Ø15·±Ô;SÓ1TÐ0UðWóð ô �, Ó%ð 	"¨Ø—i‘i“kˆG÷	"à'5¸Ò'?Œ{˜7Ó#ÐLÀWÐLÜ�,¤Ô%Ü˜5  Ð.>Ð?Ó@Ð@à!×'Ñ'Ó)€Nà× Ñ  Ô*¨nÀÒ.BØ×$Ñ$ WÓ-Ð-Üˆ~ÔÜ˜>Ó*Ð*Ü
ÐTÓ
UÐU÷	"ð 	"ús   Á=DÄD(c                ót   — | j                  d«       | j                  «       }t        | «      rt        |«      S |S )úAHandles io.BytesIO data, converting SRT to VTT content if needed.r   )r   Úgetvaluer'   r3   )r!   Ústream_datas     r&   Ú_handle_stream_datarK   ˆ   s/   € à
‡K�K�„NØ—/‘/Ó#€KÜ'.¨v¤Œ;�{Ó#ÐG¸KÐGó    c                ó2   — t        | «      rt        | «      S | S )rH   )r'   r3   )Údatas    r&   Ú_handle_bytes_datarO   �   s   € ä '¨¤Œ;�tÓÐ7°4Ð7rL   c                óð  — t        |t        t        f«      rt        |«      }nZt        |t        j
                  «      rt        |«      }n4t        |t        «      rt        |«      }nt        dt        |«      › d�«      ‚t        j                  «       rft        |j                  «       «      }t        j                  «       j                   j#                  |d| |› d�¬«      }t%        j&                  |d| «       |S y)Nz)Invalid binary data format for subtitle: r)   ztext/vttr	   )Úpath_or_dataÚmimetypeÚcoordinatesÚ	file_namer7   )r   r   r   rF   r   r   rK   r   rO   r+   r,   r   Úexistsr   r   Úget_instanceÚmedia_file_mgrÚaddr   Úsave_media_data)rS   rN   ÚlabelÚsubtitle_dataÚfilenameÚfile_urls         r&   Úprocess_subtitle_datar^   ”   sÎ   € ô �$œœd˜Ô$Ü3°DÓ9‰Ü	�Dœ"Ÿ*™*Ô	%Ü+¨DÓ1‰Ü	�Dœ%Ô	 Ü*¨4Ó0‰äÐCÄDÈÃJÀ<ÈqÐQÓRÐRä‡~�~ÔÜ˜EŸL™L›NÓ+ˆä×'Ñ'Ó)×8Ñ8×<Ñ<Ø&ØØ#Ø!˜
 $Ð'ð	 =ó 
ˆô 	×Ñ ¨z¸;ÔGØˆàrL   )r!   zstr | io.BytesIO | bytesÚreturnÚbool)r/   zstr | bytesr_   r   )rA   z
str | Pathr_   r   )r!   z
io.BytesIOr_   r   )rN   r   r_   r   )rS   r   rN   zstr | bytes | Path | io.BytesIOrZ   r   r_   r   )Ú
__future__r   r   r8   r   Úpathlibr   Ú	streamlitr   Ústreamlit.runtimer   Ústreamlit.utilr   r    r.   r=   r'   r3   rF   rK   rO   r^   © rL   r&   ú<module>rg      sz   ðõ #ã 	Û 	Û 	Ý å Ý %Ý #ð
 NÐ à5Ð à+Ð ó óF$/óNVó4Hó8ð
Øðà
)ðð ðð 	ô	rL   