File: //usr/local/CyberCP/plogical/__pycache__/CyberCPLogFileWriter.cpython-310.pyc
o
��hv � @ s: d dl Z d dlZd dlZd dlZd dlZG dd� d�ZdS )� Nc @ s^ e Zd ZdZedd� �Zeddd��Zeddd��Zed d
� �Zedd� �Z edd
d��Z
dS )�CyberCPLogFileWriterz/home/cyberpanel/error-logs.txtc
C sd zdd l }|�d||j�sd�| |�}|W S ty1 } zt�t|�d � W Y d }~d S d }~ww )Nr z^From: zFrom: {}
{}z [AddFromHeader])�re�search� MULTILINE�format�
BaseExceptionr �writeToFile�str)�sender�messager �msg� r
�3/usr/local/CyberCP/plogical/CyberCPLogFileWriter.py�
AddFromHeader
s ��z"CyberCPLogFileWriter.AddFromHeaderNc
C s zed}t j�|�rQdd l}|�t|d��� �}|d }|d } |d }
|d }t�t |�t
| ��}|�|
|� |d krAd�||�}t
�| |�}|�|
||� W d S t�d �}
t
�| |�}|
�| ||� W d S ty } zt
�t |�� W Y d }~d S d }~ww )
Nz/home/cyberpanel/smtpDetailsr �r�smtpHost�smtpPort�smtpUserName�smtpPasswordzSubject: {}
{}� localhost)�os�path�exists�json�loads�open�read�smtplib�SMTPr �int�loginr r r �sendmailr r )r
� receiversr �subject�type�smtpPathr �mailSettingsr r r r �
smtpServer�smtpObjr r
r
r � SendEmail s,
��zCyberCPLogFileWriter.SendEmailc
C sp z�t dt�d� d | � ttjd�}|�dt�d� d | d � |�� d}zJtj �
|�rmd}d}t|d ��� �d�}d
t
�� }|g}d|d�|�|d
t�d�| f f } |d ksb|dkrqt�||| � W W d S W W d S W W d S ty� } z$ttjd�}|�dt�d� d t| � d � |�� W Y d } ~ W d S d } ~ ww ty� } zW Y d } ~ dS d } ~ ww )N�[�%m.%d.%Y_%H-%M-%S�] �a�
z/usr/local/CyberCP/emailDebugzCyberPanel log reportingz/home/cyberpanel/adminEmailr zroot@%sz From: %s
To: %s
Subject: %s
%s
z, z
[%s] %s.
� zCan not write to error file.)�print�time�strftimer r �fileName�
writelines�closer r r r �rstrip�socket�gethostname�joinr) r r )
r �email�file� emailPath�SUBJECT�adminEmailPath�
adminEmailr
�TOr r
r
r r 6 s^
������ �
��������z CyberCPLogFileWriter.writeToFilec C sh z)t tjd�}|�dt�d� d | d | d | d � |�� |�� W d S ty3 Y dS w ) Nr- r* r+ z] [�:r, r. zCan not write to error file!)r r r3 r4 r1 r2 r5 r )r �level�methodr; r
r
r �writeforCLI^ s0
���������z CyberCPLogFileWriter.writeforCLIc
C sP zt t�ddt | �|g��d��}|W S tjy' } zW Y d }~dS d }~ww )N�tailz-nzutf-8zFile was empty)r �
subprocess�check_output�decode�CalledProcessError)�
numberOfLinesr3 �lastFewLinesr r
r
r �readLastNFilesi s ��z#CyberCPLogFileWriter.readLastNFilesc
C s� z't j�d�rt|� |d krt| d�}nt| d�}|�|d � |�� W d S tyC } zt� t
|�d � W Y d }~d S d }~ww )Nz/usr/local/CyberCP/debug�wr- r. z [statusWriter])r r r r0 r r4 r5 r r r r )�tempStatusPath�mesg�append�
statusFiler r
r
r �statusWritert s
��z!CyberCPLogFileWriter.statusWriter)NN)N)�__name__�
__module__�__qualname__r3 �staticmethodr r) r rD rL rR r
r
r
r r s
'
r )rF r1 r7 r r r r
r
r
r �<module> s