
    Sܶi                        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             dS dS )z.Main entrypoint for the edge-playback package.    N)which)ListOptionalTuple   )pr_errreturnc                      t          j        ddd          } |                     ddd           |                                 \  }}t          j        d	k    p|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       Y/root/projects/openclaw-proxy/venv/lib/python3.11/site-packages/edge_playback/__main__.py_parse_argsr      s    $Q8  F
 b    
 ,,..ND(lg%1GH    r   c                     d}dg}| r|                     d           |D ]%}t          |          st          | d           d}&|r%t          d           t          j        d           d S d S )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'      s    O<D E # #Szz 	#c---..."O 9::: r   	mp3_fname	srt_fnamedebugc                 8   d x}}|sEt          j        dd          }|                                 |j        }|rt	          d|            |s3| r1t          j        dd          }|                                 |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HHJ	 	.,,,--- " ".fUKKKM	 / /-	---...ir   r   c                     dd|  g}|r|                     d|            ||z   }t          j        |          5 }|                                 d d d            d S # 1 swxY w Y   d S )Nr!   z--write-media=z--write-subtitles=)r"   
subprocessPopencommunicate)r(   r)   r   edge_tts_cmdprocesss        r   _run_edge_ttsr=   D   s      < < <=L ><<<===(*L		,	'	' 7                 s   AA!$A!c                 8   t           j        dk    r| sddlm}  ||           d S ddg}|r|                    d|            |                    |           t          j        |          5 }|                                 d d d            d S # 1 swxY w Y   d S )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22222y!!! 	1G  20Y00111NN9		'	"	" g                 s   -BBBkeepc                 ^   |r<| :t          d|  d           |rt          d| d           t                       d S | 3t          j                            |           rt          j        |            |5t          j                            |          rt          j        |           d S d S d S )Nz
Keeping temporary files:  )endz and )r3   ospathexistsunlink)r(   r)   rC   s      r   _cleanuprK   b   s     	%7I77R@@@@ 	/%)%%2....	!:!:
	)	!:!:
	) r   c                     t                      \  } }t          |            t          j                            d          d u}t          j                            d          d u}t          j                            d          }t          j                            d          }	 t          | |||          \  }}t          |||           t          | ||           t          |||           d S # 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JNN011=E:>>344D@D
788I
788I-1'9iQVWW	9iH555GY	222It,,,,,It,,,,s   "7C, ,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 4  				     



        ( ( ( ( ( ( ( ( ( (      U4c?+      $       &sm 8@ NR 
3       ,'}8<S		    # (3- D    & (3- t PT    - - - -" z	EGGGGG r   