U
    Yh                     @   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   6/var/www/lizmap/lizmap/plugins/atlasprint/plausible.py__init__$   s    zPlausible.__init__)returnc                 C   sf   t ttddrdS t tdddr,dS t  }| jrP| j|tk rPdS | 	 rb|| _dS dS )z& Request to send an event to the API. F)default_valueZCIT)
r
   osgetenvENV_SKIP_STATSr   ZcurrentDateTimeUtcr   ZsecsToMIN_SECONDS_send_stat_event)r   Z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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!krj|"|d  n|#||   dS )z Send stats event to the API. F)ZmasterZ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atlasPrint-server)zplugin-versionzqgis-version-fullzqgis-version-branchzpython-version-fullzpython-version-branchzos-name)nameZpropsurlZ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ContentTypeHeaderr   QGIS_VERSIONsplitjoinplatformZpython_versionsystemr   instanceZpostr   strencodejsondumpsr	   getpiderrorr   NoErrorinfowarning)debugZextra_debugZatlas_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__r/   r   r*   	qgis.corer   r   Zqgis.PyQt.QtCorer   r   r   Zqgis.PyQt.QtNetworkr   r   atlasprint.loggerr	   atlasprint.toolsr
   r   r   r   r#   r!   r$   r    r   r   r   r   r   <module>   s"   