
    Xi                     H   d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
mZ ddlmZ deee	e   f   fdZd	eddfd
Zd	ede
e   de
e   dedeee
e   f   f
dZdede
e   de	e   ddfdZd	edede
e   ddfdZde
e   de
e   deddfdZddZedk(  r e        yy)z.Main entrypoint for the edge-playback package.    N)which)ListOptionalTuple   )pr_errreturnc                      t        j                  ddd      } | j                  ddd       | j                         \  }}t        j
                  d	k7  xs |j                  }||fS )
Nzedge-playbackz;Speak text using Microsoft Edge's online text-to-speech APIz'See `edge-tts` for additional arguments)progdescriptionepilogz--mpv
store_truezSUse mpv to play audio. By default, false on Windows and true on all other platforms)actionhelpwin32)argparseArgumentParseradd_argumentparse_known_argssysplatformmpv)parserargstts_argsuse_mpvs       `/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/edge_playback/__main__.py_parse_argsr      so    $$Q8F
 b  
 ,,.ND(llg%1GH    r   c                     d}dg}| r|j                  d       |D ]  }t        |      rt        | d       d}  |r!t        d       t        j                  d       y y )NFedge-ttsr   z is not installed.Tz(Please install the missing dependencies.r   )appendr   r   r   exit)r   depcheck_faileddepsdeps       r   _check_depsr'      sf    O<DE #SzcU,-."O#
 9: r   	mp3_fname	srt_fnamedebugc                 0   d x}}|sCt        j                  dd      }|j                          |j                  }|rt	        d|        |s5| r3t        j                  dd      }|j                          |j                  }|r|rt	        d| d       ||fS )Nz.mp3F)suffixdeletezMedia file: z.srtzSubtitle file: 
)tempfileNamedTemporaryFileclosenameprint)r   r(   r)   r*   mediasubtitles         r   _create_temp_filesr6   .   s     EH++6%HJJ	L,-..fUKMM		{"-.ir   r   c                     dd|  g}|r|j                  d|        ||z   }t        j                  |      5 }|j                          d d d        y # 1 sw Y   y xY w)Nr!   z--write-media=z--write-subtitles=)r"   
subprocessPopencommunicate)r(   r)   r   edge_tts_cmdprocesss        r   _run_edge_ttsr=   D   si     . <=L0<=(*L			,	' 7  s   AAc                    t         j                  dk(  r| sddlm}  ||       y ddg}|r|j	                  d|        |j	                  |       t        j                  |      5 }|j                          d d d        y # 1 sw Y   y xY w)Nr   r   )play_mp3_win32r   z'--msg-level=all=error,statusline=statusz--sub-file=)r   r   win32_playbackr?   r"   r8   r9   r:   )r   r(   r)   r?   mpv_cmdr<   s         r   _play_mediarB   O   s    
||ww2y! 	1G YK01NN9			'	" g  s   %A??Bkeepc                 B   |r/| -t        d|  d       |rt        d| d       t                y | 4t        j                  j                  |       rt        j                  |        |6t        j                  j                  |      rt        j                  |       y y y )Nz
Keeping temporary files:  )endz and )r3   ospathexistsunlink)r(   r)   rC   s      r   _cleanuprK   b   s    	%+I;7R@E)%2.	!:
		)	!:
		) ";r   c                     t               \  } }t        |        t        j                  j	                  d      d u}t        j                  j	                  d      d u}t        j                  j	                  d      }t        j                  j	                  d      }	 t        | |||      \  }}t        |||       t        | ||       t        |||       y # t        |||       w xY w)NEDGE_PLAYBACK_DEBUGEDGE_PLAYBACK_KEEP_TEMPEDGE_PLAYBACK_MP3_FILEEDGE_PLAYBACK_SRT_FILE)	r   r'   rG   environgetr6   r=   rB   rK   )r   r   r*   rC   r(   r)   s         r   _mainrS   p   s    #GXJJNN01=E::>>34D@D

78I

78I-1'9iQVW	9iH5GY	2It,It,s   +C C"__main__)r	   N)__doc__r   rG   r8   r   r/   shutilr   typingr   r   r   utilr   boolstrr   r'   r6   r=   rB   rK   rS   __name__ r   r   <module>r]      s'   4  	  
   ( ( U4c?+   $    &sm 8@ NR 
3 ,'}8<S		 # (3- D & (3- t PT -" z	G r   