o
    :eK                     @   s  d dl Z d dlZd dlZd dlmZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ ddlT eeZddlT ddlT ejd	urod dlZe d
krPdZndZd dlmZ eedddZedZee eje ejdd ejddgddd Z ejddgddd Z!ejddgddd Z"ejddgdd d! Z#ejd"dgdd#d$ Z$ejd%dgdd&d' Z%ejd(dgdd)d* Z&ed+d,d- Z'edejdd.gdd/d0 Z(ejd1d.gdd2d3 Z)ejd4d.gdd5d6 Z*ejd4d.gd7d8id9ejd:d.gdd;d< Z+ed4d=d> Z,ej-d?d@ Z-e.dAG dBdC dCe/Z0e.e0dDdE Z1edFkrFej2d	dG dS dS )H    N)Flaskjsonifyrender_template)make_response)request)abort)BaseConverter   )*TWindowszAf:/xampp/htdocs/asia-tires.ruloc/www/telegram_esp32adv/python.logz6/opt/Telegram_ESP32/site2/telegram_esp32adv/python.log)RotatingFileHandleri  @   )maxBytesbackupCountz4%(asctime)s - %(name)s - %(levelname)s - %(message)sz__init__ >>> %so   z/<string:API_KEY>/email/POST)methodsc                 C   s   t d t tj t }t | ttdt| d}|dkr0|dkr0tdt	j
it	j
ddifS t| |t}|dkrItdt	j
it	j
ddifS td|i|ddifS )	Nrequest_email Tr   r	   resultContentTypeapplication/json)printr   methodget_json
cl_man_req
regRequestappjsondumpsclCresultNotValidDatar   API_KEYrequest_dataans r&   @/opt/Telegram_ESP32/site2/telegram_esp32adv/flaskdir/__init__.pyr   .   s   
r   z/<string:API_KEY>/recipient/c                 C   s   t d t tj t }t | ttdt| d}|dkr0|dkr0tdt	j
it	j
ddifS t| |t}|dkrItdt	j
it	j
ddifS tdt	jit	jddifS )	Nrequest_recipientr   Tr   r	   r   r   r   )r   r   r   r   r   r   r   r   r   r    r!   r(   resultOKr"   r&   r&   r'   r(   B   s   
r(   z/<string:API_KEY>/smtp/c                 C   s   t d t |  t tj t }t | ttdt| d}|dkr4|dkr4tdt	j
it	j
ddifS t| |t}|dkrMtdt	j
it	j
ddifS tdt	jit	jddifS )	Nrequest_smtpr   Tr   r	   r   r   r   )r   r   r   r   r   r   r   r   r   r    r!   r*   r)   r"   r&   r&   r'   r*   W   s   
r*   z/<string:API_KEY>/c                 C   s   t d ttdt| }|dkr"|dkr"tdtjitjddifS t tt	tj
 t tj t }t | t d t |d  t| |t}|dkr\tdtjitjddifS t|S )	Nget_records_tr   r   r	   r   r   r   DTF)r   r   r   r   r   r   r   r    r!   dictheadersr   r   r+   r   )r#   r%   r$   r&   r&   r'   r+   n   s   
r+   z/get_logs_name_device/c               
   C      t d t tttj t tj z&t } t |  t	| t
}|dkr5tdtjitjddifW S t|W S  tyl } z't d t t| t |j t | tdtjitjddifW  Y d }~S d }~ww )Nget_logs_name_devicer   r   r   r   z(get_logs_name_device ini       Exception)r   r   r   r-   r   r.   r   r   r   r0   r   r    r!   r   	Exceptiontypeargsr$   r%   instr&   r&   r'   r0      $   


(r0   z/get_records_t_name_device/c               
   C   r/   )Nget_records_t_name_devicer   r   r   r   z-get_records_t_name_device ini       Exception)r   r   r   r-   r   r.   r   r   r   r7   r   r    r!   r   r1   r2   r3   r4   r&   r&   r'   r7      r6   r7   z/get_list_name_device/c               
   C   s   t d t tttj t tj z&t } t |  t	| t
}|dkr5tdtjitjddifW S t|W S  tyg } z"t d t  t d t t| t |j t | tt|tjdd }~ww )	N$get_list_name_device_ByIdUserGrafanar   r   r   r   zContent-type: text/html ;

z0get_list_name_device_ByIdUserGrafana   Exceptionstatus_code)r   r   r   r-   r   r.   r   r   r   r8   r   r    r!   r   r1   r2   r3   InvalidAPIUsagestrr4   r&   r&   r'   r8      s(   


r8   z/<string:API_KEY>/infos/c                 C   s8   t | t}|dkrtdtjitjddifS t|S )Nr   r   r   r   )r   r+   r   r   r   r    r!   r   )r#   r%   r&   r&   r'   get_records_t0   s   r=   GETc                 C   s   i }t tdt| }|dkr |dkr tdtjitjddifS dtjv r-tj	d|d< t 
| |t}|dkrFtdtjitjddifS t|S )Nr   r   r	   r   r   r   d)r   r   r   r   r   r   r    r!   r3   get
get_last_tr   r"   r&   r&   r'   rA      s   
rA   z/debug/c                  C   s*  t jd d} d}z6tjd}| }tjd}t|}tjd}t|}tjd}t|}tjd}t|}d	}W n tyN   t	d
t
jdw td	|dD ]}|||  }	|t| | }
t|
||	tjt }qU|d	kr|dkrtdt
jit
jddifS t jdtj t||dS )Nz reg_t_debugr	   
   mttststepniterr   
wrong datar9   r   r   r   request.remote_addr>>> %srD   rC   )r   loggerwarningr   r3   r@   upperint
ValueErrorr;   r    r!   rangerandomrandintr   reg_t_debugremote_addrr   r   r   )randTempOfDrandTempOfUrC   rD   rE   rF   rG   r?   iterMtimettr%   r&   r&   r'   rS     s6   rS   /c               
   C   s2  t jd zPt jdttj tjd} | d u r |  } t	t| t }|dkr>|dkr>t
dtjitjddifW S tjd	}t|}d}d
tjv rUtjd
}W n tyi } ztdtjdd }~ww t|| |tjt }|dkr|dkrt
dtjitjddifS t jdtj t|| dS )Nz reg_tzreg_t >>> %srC   r   r	   r   r   r   rD   r?   rH   r9   zreg_t import      ExceptionrI   rJ   )r   rK   rL   r<   r   r3   r@   rM   r   r   r   r   r    r!   rN   r1   r;   r   r2   reg_trT   r   )rC   r%   rD   firmware_numberr5   r&   r&   r'   r[   :  s4   
	r[   macr   )r   defaultsz!/<string:mac>/api/v1.0/tasks/mac/c                 C   s   t jd}t|| dS )Nv)r_   r]   )r   r3   r@   r   )r]   r_   r&   r&   r'   	catch_macn  s   r`   c                   C   s   dS )NzHello Flask under Apache!r&   r&   r&   r&   r'   hello_worldRw  s   ra   c              
   C   s   z-t d| j  | jdkr+tj }|d}t d|tjtjtjtj	| j
f  W | S W | S  tyS } zt d t t| t |j t | W Y d}~| S d}~ww )z Logging after every request. zafter_request() called %si  z[%Y-%b-%d %H:%M]zafter_request %s %s %s %s %s %szafter_request ExceptionN)r   r:   datetimenowstrftimer   rT   r   scheme	full_pathstatusr1   r2   r3   )responsedtrE   r5   r&   r&   r'   after_request  s2   



rj   i  c                       s*   e Zd ZdZd fdd	Zdd Z  ZS )r;   i  Nc                    s(   t    || _|d ur|| _|| _d S N)super__init__messager:   payload)selfrn   r:   ro   	__class__r&   r'   rm     s
   

zInvalidAPIUsage.__init__c                 C   s&   t | jpd}| j|d< | j|d< |S )Nr&   r:   rn   )r-   ro   r:   rn   )rp   rvr&   r&   r'   to_dict  s   

zInvalidAPIUsage.to_dict)NN)__name__
__module____qualname__r:   rm   rt   __classcell__r&   r&   rq   r'   r;     s    r;   c                 C   s   t |  | jfS rk   )r   rt   r:   )er&   r&   r'   invalid_api_usage  s   rz   __main__)debug)3rb   r   rQ   flaskr   r   r   r   r   r   werkzeug.routingr   handlers.cl_man_reqru   r   registrationdevice_managementr|   loggingplatformsystempath_loglogging.handlersr   file_handler	Formatter	formattersetFormatterrK   
addHandlerinforouter   r(   r*   r+   r0   r7   r8   r=   rA   rS   r[   r`   ra   rj   errorhandlerr1   r;   rz   runr&   r&   r&   r'   <module>   s~   











6
3



