o
    vZhA                     @   s  d dl mZmZmZ d dlmZmZ d dlZd dlZd dl	ZdddgiZ
ddd	d
iiddddiddgddidZeje edZdd Zdd Zdd Zdd Zdd Zeje
dejddded ejd!d"d#eje d$d%d&ejd'd(d#ejd)d*d+d&ejd,d-dd.d/d0ejd1d2d3d4d.ed5d6ejd7d8d9d:d.d.d;d<ejd=dd.d.d>d?ejd@dd.d.dedAdBejdCdd.d.dedDdBejedEdFdG ZdS )H    )gTTS	gTTSError__version__)	tts_langs_fallback_deprecated_langNZhelp_option_namesz-hz--help   defaultformatz&%(name)s - %(levelname)s - %(message)sconsolezlogging.StreamHandler)class	formattergttsWARNING)handlerslevel)version
formattersr   loggersc                   C   s   dS )z*Charset to use for --file <path>|- (stdin)utf8 r   r   r   7/var/www/auris/lib/python3.10/site-packages/gtts/cli.pysys_encoding   s   r   c                 C   s4   |sd| j vrtd|rd| j v rtd|S )zrValidation callback for the <text> argument.
    Ensures <text> (arg) and <file> (opt) are mutually exclusive
    filez#<text> or -f/--file <file> requiredz2<text> and -f/--file <file> can't be used together)paramsclickZBadParameter)ctxparamtextr   r   r   validate_text   s
   

r   c              
   C   sx   | j d r|S t|}z|t vrtd| d| j d< W |S  ty; } ztjt|dd W Y d}~|S d}~ww )z{Validation callback for the <lang> option.
    Ensures <lang> is a supported language unless the <nocheck> flag is set
    nocheckzp'%s' not in list of supported languages.
Use --all to list languages or add --nocheck to disable language check.Texc_infoN)	r   r   r   r   
UsageErrorRuntimeErrorlogdebugstr)r   r   langer   r   r   validate_lang*   s"   

r)   c              
      s   |r| j rdS zt  t fdd D }tdd|  W n ty; } ztjt	|dd t
dd}~ww |   dS )	z_Callback for <all> flag.
    Prints formatted sorted list of supported languages and exits
    Nc                 3   s     | ]}d  | | V  qdS )z{}: {}N)r	   ).0kZlangsr   r   	<genexpr>P   s    z"print_languages.<locals>.<genexpr>z  z
  Tr    zCouldn't fetch language list.)Zresilient_parsingr   sortedr   Zechojoinr#   r$   r%   r&   ClickExceptionexit)r   r   valueZlangs_str_listr(   r   r,   r   print_languagesG   s   

r3   c                 C   s   |rt tj dS )z>Callback for <debug> flag.
    Sets logger level to DEBUG
    N)r$   setLevelloggingDEBUG)r   r   r%   r   r   r   	set_debugX   s   r7   )Zcontext_settingsr   z<text>F)metavarrequiredcallbackz-fz--filez<file>)encodingz#Read from <file> instead of <text>.)r8   typehelpz-oz--outputwb)modez"Write to <file> instead of stdout.z-sz--slowTzRead more slowly.)r   is_flagr=   z-lz--langz<lang>enzIIETF language tag. Language to speak in. List documented tags with --all.)r8   r   show_defaultr:   r=   z-tz--tldz<tld>comzHTop-level domain for the Google host, i.e https://translate.google.<tld>)r8   r   rB   is_eagerr=   z	--nocheckzCDisable strict IETF language tag checking. Allow undocumented tags.)r   r@   rD   r=   z--allz;Print all documented available IETF language tags and exit.)r   r@   rD   Zexpose_valuer:   r=   z--debugzShow debug information.)r   c           	   
   C   s   | dkrt d } |st d}|r:z| } W n ty9 } ztjt|dd t |j	dt
  d}~ww zt| |||| d}|| W dS  ttfya } zt t|d}~w tys } zt t|d}~ww )	zRead <text> to mp3 format using Google Translate's Text-to-Speech API
    (set <text> or --file <file> to - for standard input)
    -stdinstdoutTr    z"<file> must be encoded using '%s'.N)r   r'   slowtldZ
lang_check)r   Zget_text_streamreadZget_binary_streamUnicodeDecodeErrorr$   r%   r&   Z	FileErrornamer   r   Zwrite_to_fp
ValueErrorAssertionErrorr"   r   r0   )	r   r   outputrH   rI   r'   r   r(   Zttsr   r   r   tts_clia   s0   D
rP   )r   r   r   r   Z	gtts.langr   r   r   r5   logging.configZCONTEXT_SETTINGSZLOGGER_SETTINGSconfig
dictConfig	getLoggerr$   r   r   r)   r3   r7   commandargumentoptionFileZversion_optionrP   r   r   r   r   <module>   s   


	
			
	"