U
    TGh                     @   s   d Z dZdZddlZddlZddlZddlmZmZ ddl	m
Z
mZmZ ddlmZmZ ddlmZ dd	lmZmZ d
ZdZdZdZeZdZG dd dZdS )zCopyright 2024, 3LizzGPL version 3zinfo@3liz.org    N)QgisQgsNetworkAccessManager)
QByteArray	QDateTimeQUrl)QNetworkReplyQNetworkRequest)Logger)to_boolversioni  Z3LIZ_SKIP_STATSzplugin.server.lizmap.comz"https://bourbon.3liz.com/api/eventz)https://plausible.snap.3liz.net/api/eventc                   @   s4   e Zd Zdd ZedddZeedddZdS )		Plausiblec                 C   s
   d| _ dS )z Constructor. N)previous_date)self r   9/var/www/lizmap/lizmap/plugins/lizmap_server/plausible.py__init__$   s    zPlausible.__init__)returnc                 C   s^   t ttrdS t tdr$dS t  }| jrH| j|tk rHdS | 	 rZ|| _dS dS )z& Request to send an event to the API. FCIT)
r
   osgetenvENV_SKIP_STATSr   ZcurrentDateTimeUtcr   ZsecsToMIN_SECONDS_send_stat_event)r   currentr   r   r   request_stat_event(   s    
zPlausible.request_stat_eventc               	   C   s  d} d}t  }|dkrd} | r"tnt}dtdd k}|rLtdt}n| rTtnt}t }|	t
| |r|dd	 |d
d |tjjd tjdd }d|ddd }t }	d|	ddd }
d||||	|
t d||d}t |ttt|}|s*dS t }dt  d| d| d}|  t!j"j#krn|$|d  n|%||    dS )z Send stats event to the API. F)ZmasterdevTZlizcloudZQGIS_SERVER_APPLICATION_NAME Z!QGIS_SERVER_PLAUSIBLE_DOMAIN_NAMEs   X-Debug-Requests   trues   X-Forwarded-Fors	   127.0.0.1zapplication/json-r   .   zlizmap-server)zplugin-versionzqgis-version-fullzqgis-version-branchzpython-version-fullzpython-version-branchzos-name)nameZpropsurldomainzRequest HTTP OS process 'z' sent to 'z' with domain 'z : ZOK)&r   PLAUSIBLE_URL_TESTPLAUSIBLE_URL_PRODr   r   lowerPLAUSIBLE_DOMAIN_PRODPLAUSIBLE_DOMAIN_TESTr   setUrlr   ZsetRawHeader	setHeaderZKnownHeadersZContentTypeHeaderr   QGIS_VERSIONsplitjoinplatformZpython_versionsystemr   instanceZpostr   strencodejsondumpsr	   getpiderrorr   ZNetworkErrorNoErrorinfowarning)debugZextra_debugZlizmap_plugin_versionZplausible_urlZis_lizcloudZplausible_domainrequestZqgis_version_fullZqgis_version_branchZpython_version_fullZpython_version_branchdatarloggermessager   r   r   r   >   sR     zPlausible._send_stat_eventN)__name__
__module____qualname__r   boolr   staticmethodr   r   r   r   r   r   "   s   r   )__copyright____license__	__email__r2   r   r-   	qgis.corer   r   Zqgis.PyQt.QtCorer   r   r   Zqgis.PyQt.QtNetworkr   r   lizmap_server.loggerr	   lizmap_server.toolsr
   r   r   r   r&   r$   r'   r#   r   r   r   r   r   <module>   s"   