
    Sh                         d dl mZ d dlmZ d dlmZmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZ  G d	 d
e          Ze G d d                      Z G d de          ZdS )    )	dataclass)
HTMLParser)ListOptionalTextIOAnyTuple   )
FormatBase   )SSAEvent)SSAFilec                   j    e Zd ZdZededee         fd            Zedddeded	e	dd
f
d            Z
d
S )
SAMIFormatzOSynchronized Accessible Media Interchange (SAMI) subtitle format implementationtextreturnc                 X    |                                                     d          rdS dS )z5See :meth:`pysubs2.formats.FormatBase.guess_format()`z<SAMI>samiN)lstrip
startswith)clsr   s     Z/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pysubs2/formats/sami.pyguess_formatzSAMIFormat.guess_format   s,     ;;==##H-- 	6t    subsr   fpformat_kwargsNc                    t                      }|                    |                                           g }|j        D ]}d                    d |j                                                                        D                       }|j        }	|	dz   t          |          dz  z   }
t          |	|
          }||_        |                    |           t          t          |          dz
            D ]6}t          ||         j        ||dz            j                  ||         _        7|j                            |           dS )z
        See :meth:`pysubs2.formats.FormatBase.from_file()`

        Supported tags:

          - ``<i>``
          - ``<u>``
          - ``<s>``
          - ``<b>``
          - ``<br>``

        CSS formatting is not supported.

        
c              3   >   K   | ]}|                                 V  d S N)strip).0lines     r   	<genexpr>z'SAMIFormat.from_file.<locals>.<genexpr>*   s*      !b!b4$**,,!b!b!b!b!b!br   i  C   )startendr
   N)
SAMIParserfeedreadsync_elementsjoinr   r#   
splitlinesstart_mslenr   	plaintextappendrangeminr)   r(   eventsextend)r   r   r   r   r   parserr6   sync_elementr2   r0   end_mseventis                r   	from_filezSAMIFormat.from_file   s=     BGGII"0 	! 	!L		!b!b<;L;R;R;T;T;_;_;a;a!b!b!bbbI#,H ^s9~~':;F  E (EOMM%     s6{{Q'' 	D 	DAq	va!e}/BCCF1IMM6"""""r   )__name__
__module____qualname____doc__classmethodstrr   r   r   r   r=    r   r   r   r   
   s        YY     [ $#Y $#F $#S $#C $#TX $# $# $# [$# $# $#r   r   c                   $    e Zd ZU eed<   eed<   dS )SyncElementr0   r   N)r>   r?   r@   int__annotations__rC   rD   r   r   rF   rF   =   s"         MMM
IIIIIr   rF   c                        e Zd Zd fdZdeddfdZddZdeddfdZd	ed
e	e
eee         f                  ddfdZd	eddfdZdeddfdZ xZS )r*   r   Nc                 d    t                                                       g | _        d | _        d S r"   )super__init__r-   current_sync_element)self	__class__s    r   rL   zSAMIParser.__init__D   s/    02;?!!!r   r0   c                 h    | j         |                                  t          |d          | _         d S )N )r0   r   )rM   close_sync_elementrF   )rN   r0   s     r   begin_sync_elementzSAMIParser.begin_sync_elementI   s8    $0##%%%$/$K$K$K!!!r   c                 d    | j         (| j                            | j                    d | _         d S d S r"   )rM   r-   r3   )rN   s    r   rR   zSAMIParser.close_sync_elementN   s;    $0%%d&?@@@(,D%%% 10r   r   c                 B    | j         | j         xj        |z  c_        d S d S r"   )rM   r   )rN   r   s     r   append_textzSAMIParser.append_textS   s0    $0%**d2**** 10r   tagattrsc                    |dk    r;t          t          |          d         pd          }|                     |           d S |dk    r|                     d           d S |dv r|                     d|z   dz              d S d S )	Nsyncr(   r   brr    br<   su{\z1})rG   dictrS   rV   )rN   rW   rX   r0   s       r   handle_starttagzSAMIParser.handle_starttagW   s    &==4;;w/4155H##H-----D[[T"""""(((US[4/00000 )(r   c                 |    |dv r|                                   d S |dv r|                     d|z   dz              d S d S )N)rZ   bodyr   r\   r`   z0})rR   rV   )rN   rW   s     r   handle_endtagzSAMIParser.handle_endtag`   s]    ***##%%%%%(((US[4/00000 )(r   datac                 0    |                      |           d S r"   )rV   )rN   rf   s     r   handle_datazSAMIParser.handle_dataf   s    r   )r   N)r>   r?   r@   rL   rG   rS   rR   rC   rV   r   r	   r   rb   re   rh   __classcell__)rO   s   @r   r*   r*   C   s"       @ @ @ @ @ @
L3 L4 L L L L
- - - -
3 3 3 3 3 313 1tE#x}:L4M/N 1SW 1 1 1 11 1 1 1 1 1         r   r*   N)dataclassesr   html.parserr   typingr   r   r   r   r	   baser   ssaeventr   ssafiler   r   rF   r*   rD   r   r   <module>rp      s   ! ! ! ! ! ! " " " " " " 5 5 5 5 5 5 5 5 5 5 5 5 5 5                  0# 0# 0# 0# 0# 0# 0# 0#f        
$ $ $ $ $ $ $ $ $ $r   