
    :Sh                        U d dl Z d dlmZ d dlZd dlZd dlmZmZmZm	Z	m
Z
mZ d dlZd dlZd dlZ ej        ej                    ej        e          Zej        ed<    G d d          Z G d d	          Z G d
 d          ZdS )    N)	timedelta)castAnyDictIteratorListOptional)levelloggerc                   d    e Zd Zd ZdedefdZedefd            Z	d Z
d Zed
d            Zd	S )GenericSubtitlec                 0    || _         || _        || _        d S N)startendinner)selfr   r   r   s       a/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/ffsubsync/generic_subtitles.py__init__zGenericSubtitle.__init__   s    



    otherreturnc                     t          |t                    sdS d}|o| j        |j        k    }|o| j        |j        k    }|o| j        |j        k    }|S )NFT)
isinstancer   r   r   r   )r   r   eqs      r   __eq__zGenericSubtitle.__eq__   s\    %11 	5-DJ%+-)DH	)-DJ%+-	r   c                     t          | j        t          j                  r| j        j        }nPt          | j        t
          j                  r| j        j        }n$t          dt          | j                  z            |S )Nunsupported subtitle type: %s)
r   r   srtSubtitlecontentpysubs2SSAEventtextNotImplementedErrortyper   rets     r   r!   zGenericSubtitle.content    sq    dj#,// 	*$CC
G$455 	*/CC%/$tz2B2BB   
r   c                    t          j        | j                  }t          | j        t          j                  r| j        |_        | j        |_        nt          | j        t          j	                  rct          j
        | j                                                  |_        t          j
        | j                                                  |_        n$t          dt          | j                  z            |S )N)sr   )copydeepcopyr   r   r   r    r   r   r"   r#   	make_timetotal_secondsr%   r&   r'   s     r   resolve_inner_timestampsz(GenericSubtitle.resolve_inner_timestamps,   s    mDJ''dj#,// 		
CIhCGG
G$455 	)DJ,D,D,F,FGGGCI'$(*@*@*B*BCCCCGG%/$tz2B2BB   
r   c                    t          | j        t          |j                            sJ t          j        | j                  }t          | j        t
          j                  rKd                    |j        |j        j                  |_        | 	                    | j
        | j        |          S t          dt          | j                  z            )Nz{}
{}r   )r   r   r&   r+   r,   r   r    formatr!   	__class__r   r   r%   )r   r   inner_mergeds      r   
merge_withzGenericSubtitle.merge_with:   s    $*d5;&7&788888}TZ00dj#,// 	#+??$ek&9$ $L  >>$*dhEEE%/$tz2B2BB  r   c                 <   t          |t          j                  r | |j        |j        |          S t          |t
          j                  r3 | t          |j                  t          |j                  |          S t          dt          |          z            )N)millisecondsr   )
r   r   r    r   r   r"   r#   r   r%   r&   )clssubs     r   wrap_inner_subtitlez#GenericSubtitle.wrap_inner_subtitleG   s    c3<(( 	S3sy#'3///W-.. 	S3sy1119#'3R3R3RTW   &&ES		&QRRRr   N)r   r   )__name__
__module____qualname__r   objectboolr   propertystrr!   r/   r4   classmethodr9    r   r   r   r      s          
F t     	 	 	 	 X	     S S S [S S Sr   r   c                       e Zd Zdee         defdZdedd fdZde	fdZ
de	defd	Zdee         fd
Zdee         dd fdZd Zdedd fdZdeddfdZdS )GenericSubtitlesFilesubskwargsc                    t          t          |                    dd                     }|t          d          t          t          |                    dd                     }|t          d          || _        || _        || _        |                    dd           | _        |                    dd           | _        |                    dd           | _	        d S )N
sub_formatzformat must be specifiedencodingzencoding must be specifiedstylesfonts_opaqueinfo)
r   r@   pop
ValueErrorsubs__sub_format	_encoding_styles_fonts_opaque_info)r   rE   _rF   rH   rI   s         r   r   zGenericSubtitlesFile.__init__T   s    sFJJ|T$B$BCC
7888S&**Z">">??9:::,0
 *&>DjjSW>X>X7=zz.RV7W7W/5zz&$/G/G


r   rI   r   c                      |dk    r|| _         | S )Nsame)rQ   r   rI   s     r   set_encodingz!GenericSubtitlesFile.set_encodingb   s    v%DNr   c                 *    t          | j                  S r   )lenrO   r   s    r   __len__zGenericSubtitlesFile.__len__g   s    4:r   itemc                     | j         |         S r   rO   )r   r^   s     r   __getitem__z GenericSubtitlesFile.__getitem__j   s    z$r   c                 *    t          | j                  S r   )iterrO   r\   s    r   __iter__zGenericSubtitlesFile.__iter__m   s    DJr   new_subsc                 ^    t          || j        | j        | j        | j        | j                  S )N)rH   rI   rJ   rK   rL   )rD   rP   rQ   rR   rS   rT   )r   re   s     r   clone_props_for_subsz)GenericSubtitlesFile.clone_props_for_subsp   s9     $'^<+
 
 
 	
r   c              #   J   K   | j         D ]}|                                V  d S r   )rO   r/   )r   r8   s     r   gen_raw_resolved_subsz*GenericSubtitlesFile.gen_raw_resolved_subs|   s<      : 	1 	1C..000000	1 	1r   tdc                     g }| j         D ];}|                    t          |j        |z   |j        |z   |j                             <|                     |          S r   )rO   appendr   r   r   r   rg   )r   rj   offset_subsr8   s       r   offsetzGenericSubtitlesFile.offset   s_    : 	Y 	YCsy2~sw|SYWWXXXX((555r   fnameNc                    || j         }n-t          j                            |          d         dd          }t	          |                                           }| j         dv rit          j                    }||_        | j	        | j	        |_
        | j        | j        |_        | j        | j        |_        |                    |          }n| j         dk    rI|dv rEt          j                            t#          j        |                                        |          }n-|dk    rt#          j        |          }nt'          d|z            t)          |pt*          j                                        d          5 }|                    |                    | j                             d d d            d S # 1 swxY w Y   d S )N   )ssaassvttr   zunsupported output format: %swb)rP   ospathsplitextlistri   r"   SSAFileeventsrR   rJ   rT   rL   rS   rK   	to_stringfrom_stringr   composer%   opensysstdoutfilenowriteencoderQ   )r   ro   
out_formatrE   ssafto_writefs          r   
write_filezGenericSubtitlesFile.write_file   s   =)JJ))%004QRR8JD..0011444?$$DDK|'"lz% J	!-$($6!~~j11HH&&:9N+N+N223;t3D3DEEOO HH 5  {4((HH%&E
&RSSS%.3:,,..55 	5GGHOODN33444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   :.F55F9<F9)r:   r;   r<   r   r   r   r   r@   rY   intr]   ra   r   rd   rg   ri   r   rn   r   rB   r   r   rD   rD   S   s>       HT/2 H# H H H HS -C    
                (?3        

_-

	

 

 

 

1 1 16 6'= 6 6 6 65 5 5 5 5 5 5 5r   rD   c                   <    e Zd Zddee         ddfdZdedd fdZdS )	SubsMixinNrE   r   c                     || _         d S r   r`   )r   rE   s     r   r   zSubsMixin.__init__   s    59


r   rI   c                 :    | j                             |           | S r   )rO   rY   rX   s     r   rY   zSubsMixin.set_encoding   s    
)))r   r   )r:   r;   r<   r	   rD   r   r@   rY   rB   r   r   r   r      sc        : :X&:; :t : : : :S [      r   r   )r+   datetimer   loggingrw   typingr   r   r   r   r   r	   r"   r   r   basicConfigINFO	getLoggerr:   r   Logger__annotations__r   rD   r   rB   r   r   <module>r      sL           				 < < < < < < < < < < < < < < < <  



 



  ', ' ' ' '**844 4 4 4?S ?S ?S ?S ?S ?S ?S ?SDN5 N5 N5 N5 N5 N5 N5 N5b         r   