o
    4ѹg	                     @   s6   d Z ddlmZ ddlZddlmZ G dd dZdS )zGSubMaker module is used to generate subtitles from WordBoundary events.    )ListN   )TTSChunkc                   @   sZ   e Zd ZdZdddZdeddfddZd	eddfd
dZde	fddZ
de	fddZdS )SubMakerzL
    SubMaker is used to generate subtitles from WordBoundary messages.
    returnNc                 C   s
   g | _ d S N)cuesself r   U/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/site-packages/edge_tts/submaker.py__init__   s   
zSubMaker.__init__msgc              	   C   sh   |d dkr
t d| jtjt| jd tj|d d dtj|d |d  d d|d	 d
 dS )z
        Feed a WordBoundary message to the SubMaker object.

        Args:
            msg (dict): The WordBoundary message.

        Returns:
            None
        typeZWordBoundaryz-Invalid message type, expected 'WordBoundary'r   offset
   )microsecondsdurationtextindexstartendcontentN)
ValueErrorr   appendsrtSubtitlelen	timedelta)r
   r   r   r   r   feed   s   
zSubMaker.feedwordsc                 C   s   |dkrt dt| jdkrdS g }| jd }| jdd D ]%}t|j |k r=tj|j|j|j	|jd |j d}q|
| |}q|
| || _dS )z
        Merge cues to reduce the number of cues.

        Args:
            words (int): The number of words to merge.

        Returns:
            None
        r   z.Invalid number of words to merge, expected > 0Nr    r   )r   r   r   r   splitr   r   r   r   r   r   )r
   r!   Znew_cuesZcurrent_cueZcuer   r   r   
merge_cues(   s$   




zSubMaker.merge_cuesc                 C   s   t | jS )z
        Get the SRT formatted subtitles from the SubMaker object.

        Returns:
            str: The SRT formatted subtitles.
        N)r   Zcomposer   r	   r   r   r   get_srtH   s   zSubMaker.get_srtc                 C   s   |   S r   )r%   r	   r   r   r   __str__Q   s   zSubMaker.__str__)r   N)__name__
__module____qualname____doc__r   r   r    intr$   strr%   r&   r   r   r   r   r   
   s    
 	r   )r*   typingr   r   r   r   r   r   r   r   <module>   s
    