U
    t2d                     @   s   d dl m Z  d dlZd dlZd dlT d dlZd dlZe  d dlmZ d dl	Z	e
 ZedZedZedZedZed	ZeZd
d Zdd Zdd Zdd Zed edkre  nedkre  nedkre  dS )    )datetimeN)*)ZipFilerequest_Type	startDateendDatemaxLogLevellogTypec               	   C   s   dddddddg} dd	d
ddddg}t tdn}tj|dd}d}g }g }|}|D ]D}dd |D }i }t||D ]\}	}
|	 ||
 < qr|| qRW 5 Q R X tt	 
t|| |d d S )N	Date TimeElementElement Name	Log LevelStateActionMessager   elementelementnameloglevelsateactionmessager@	delimiterr   c                 S   s   g | ]}|r|qS  r   .0elemr   r   %/var/www/pilotTERA/cgi/cgi_CCMLogs.py
<listcomp>'   s      z read_CCMLogs.<locals>.<listcomp>logsDataheaderspropetyName)openLogsFilePathcsvreaderzipstripappendprintjsonJSONEncoderencodeApplyFilterdisplayTextListpropertyNameListcsvfile
filereaderiheaderout_datarow_dictr   header_elemr   r   r   read_CCMLogs   s>            r<   c               	   C   s   dddddddg} dd	d
ddddg}t tdn}tj|dd}d}g }g }|}|D ]D}dd |D }i }t||D ]\}	}
|	 ||
 < qr|| qRW 5 Q R X tt	 
t|| |d d S )Nr
   r   r   r   r   r   r   r   r   r   r   r   r   r   rbr   r   r   c                 S   s   g | ]}|r|qS r   r   r   r   r   r   r    @   s      z"read_CCMAlerts.<locals>.<listcomp>r!   )r%   AlertsFilePathr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r   r   read_CCMAlerts3   s>            r?   c                    s   t tdkrtd t tdkr@t tdkr@ fdd| D } t tdkrft tdkrfdd | D } t tdkrt tdkrdd | D } t tdkrt tdkrd	d | D } | S )
N ,ZAllc                    s   g | ]}|d   kr|qS )r   r   r   xZlogTypeFiltersr   r   r    Q   s      zApplyFilter.<locals>.<listcomp>Nonec                 S   s$   g | ]}t |d  t tkr|qS )r   )intr   rB   r   r   r   r    T   s      c                 S   s0   g | ](}t |d  dt ttdkr|qS )r   %d/%m/%Y-%H:%M:%Sz%Y-%m-%d)r   strptimestrr   rB   r   r   r   r    X   s       c                 S   s4   g | ],}t |d  dt ttd dkr|qS )r   rG   z	 23:59:59z%Y-%m-%d %H:%M:%S)r   rH   rI   r   rB   r   r   r   r    ]   s       )rI   r	   splitr   r   r   )Zlogsr   rD   r   r0   L   s    
r0   c                  C   sf   t dd} dd l}|t}|d | d |   tt	 
dtjdd td d S )Nz../LyraTera_SystemName.zipwr   z
ccmlog.txtzLyraTera_SystemName.zip)Zdownload_filefilename)r   ZpandasZread_csvr&   Zto_csvwritecloser,   r-   r.   r/   ospathbasenameremove)ZzipObjpdZdfr   r   r   download_CCMLogsa   s    



 rT   zContent-type:text/html

)r   r-   r'   globalSettingscgicgitbenablezipfiler   shutilFieldStorageformgetvaluer   r   r   r   r	   
DeviceNamedevicer<   r?   r0   rT   r,   r   r   r   r   <module>   s4   





