U
    ânldÞ  ã                   @   sR   d dl Z d dlZd dlZd dlmZ d dlmZ dd„ Zdd„ Z	e
dkrNe	ƒ  dS )	é    N)Ú
create_app)ÚDEFAULT_ARGUMENTSc                  C   sð  t jdd�} | jdtdtd d� | jdtdtd	 d� | jd
td tddd� | jdtd tddd� | jdtd tddd� | jdtd tddd� | jdtd tddd� | jdtd tdd d� | jd!ttd" d#d$d%� | jd&td' d(d)d*� | jd+td, d(d-d*� | jd.ttd/ d0d1d%� | jd2ttd3 d0d4d%� | jd5ttd6 d7d8d%� | jd9td: d(d;d*� | jd<td= td>d?� | jd@tdA tdBd?� | jdCtdD tdEd?� | jdFttdG dHdI� | jdJtdK d(dLd*� | jdMttdN ddOd%� | jdPt dQdR¡tdS dTdUd%� | jdVtdW tdXdYd� | jdZtd[ d(d\d*� | jd]td^ d(d_d*� | jd`tda d(dbd*� | jdctdd d(ded*� | jdftdg d(dhd*� | jditdj tdkd?� | jdltdm tdnd?� |  ¡ }|j	�rì|j	 
do¡�sìdo|j	 |_	|S )pNz5LibreTranslate - Free and Open Source Translation API)Zdescriptionz--hostzHostname (%(default)s)ZHOST)ÚtypeÚhelpÚdefaultz--portzPort (%(default)s)ZPORTz--char-limitZ
CHAR_LIMITz<number of characters>z!Set character limit (%(default)s))r   r   Úmetavarr   z--req-limitZ	REQ_LIMITz<number>zNSet the default maximum number of requests per minute per client (%(default)s)z--req-limit-storageZREQ_LIMIT_STORAGEz<Storage URI>z‡Storage URI to use for request limit data storage. See https://flask-limiter.readthedocs.io/en/stable/configuration.html. (%(default)s)z--daily-req-limitZDAILY_REQ_LIMITzfSet the default maximum number of requests per day per client, in addition to req-limit. (%(default)s)z--req-flood-thresholdZREQ_FLOOD_THRESHOLDzlSet the maximum number of request limit offences that a client can exceed before being banned. (%(default)s)z--batch-limitZBATCH_LIMITz<number of texts>zISet maximum number of texts to translate in a batch request (%(default)s)z--ga-idZGA_IDz<GA ID>zOEnable Google Analytics on the API client page by providing an ID (%(default)s))r   r   r   r   z--debugZDEBUGZ
store_truezEnable debug environment)r   Úactionr   z--sslZSSLzWhether to enable SSLz--frontend-language-sourceZFRONTEND_LANGUAGE_SOURCEz<language code>z4Set frontend default language - source (%(default)s)z--frontend-language-targetZFRONTEND_LANGUAGE_TARGETz4Set frontend default language - target (%(default)s)z--frontend-timeoutZFRONTEND_TIMEOUTz<milliseconds>z.Set frontend translation timeout (%(default)s)z
--api-keysZAPI_KEYSz8Enable API keys database for per-user rate limits lookupz--api-keys-db-pathZAPI_KEYS_DB_PATHzjUse a specific path inside the container for the local database. Can be absolute or relative (%(default)s))r   r   r   z--api-keys-remoteZAPI_KEYS_REMOTEzXUse this remote endpoint to query for valid API keys instead of using the local databasez--get-api-key-linkZGET_API_KEY_LINKz=Show a link in the UI where to direct users to get an API keyz--require-api-key-originZREQUIRE_API_KEY_ORIGINzkRequire use of an API key for programmatic access to the API, unless the request origin matches this domain)r   r   r   z--require-api-key-secretZREQUIRE_API_KEY_SECRETziRequire use of an API key for programmatic access to the API, unless the client also sends a secret matchz--shared-storageZSHARED_STORAGEzLShared storage URI to use for multi-process data sharing (e.g. via gunicorn)z--load-onlyÚsplitú,Z	LOAD_ONLYz <comma-separated language codes>z@Set available languages (ar,de,en,es,fr,ga,hi,it,ja,ko,pt,ru,zh)z	--threadsZTHREADSz<number of threads>z#Set number of threads (%(default)s)z--suggestionsZSUGGESTIONSzAllow user suggestionsz--disable-files-translationZDISABLE_FILES_TRANSLATIONzDisable files translationz--disable-web-uiZDISABLE_WEB_UIzDisable web uiz--update-modelsZUPDATE_MODELSz!Update language models at startupz	--metricsZMETRICSzCEnable the /metrics endpoint for exporting Prometheus usage metricsz--metrics-auth-tokenZMETRICS_AUTH_TOKENzqProtect the /metrics endpoint by allowing only clients that have a valid Authorization Bearer token (%(default)s)z--url-prefixZ
URL_PREFIXz/Add prefix to URL: example.com:5000/url-prefix/ú/)ÚargparseZArgumentParserZadd_argumentÚstrÚDEFARGSÚintÚoperatorÚmethodcallerZ
parse_argsÚ
url_prefixÚ
startswith)ZparserÚargs© r   ú3/var/www/html/LibreTranslate/libretranslate/main.pyÚget_args	   s†   ÿ   ÿûûûûûûû   ÿ   ÿûûûüüüüüüû
ûû   ÿ  þ   ÿ   ÿüüür   c                  C   s†   t ƒ } t| ƒ}dtjkr|S | jr6|j| j| jd� nLddlm	} | j
rLdnd}td|| j| j| jf ƒ ||| j| j|| jd� d S )	Nz--wsgi)ÚhostÚportr   )ÚserveZhttpsZhttpzRunning on %s://%s:%s%s)r   r   Ú
url_schemeÚthreads)r   r   ÚsysÚargvÚdebugÚrunr   r   Zwaitressr   ZsslÚprintr   r   )r   Zappr   r   r   r   r   Úmain»   s     
ûr"   Ú__main__)r   r   r   Zlibretranslate.appr   Zlibretranslate.default_valuesr   r   r   r"   Ú__name__r   r   r   r   Ú<module>   s    3