U
    ^a	                     @   s   d dl mZmZ d dlmZ d dlZd dlZd dlZe Zej	ddZ
e ZeddZdd	 Zeed
ddZeddd ZedeeedddZeddd ZdS )    )FastAPIBackgroundTasks)HTMLResponseNz.2050623789:AAHw9ocGmAwrytlYgQoFWZkj3k1WZxP5X_E)tokentimerztimestamp activec                 C   s   t j| dtjjd d S )NiUy)textZchat_idZ
parse_mode)botsend_messagetelegramZ	ParseModeZMARKDOWN)r    r   $/home/phil/configs/./uptime_check.pyr	      s    r	   namedelayc                 C   s   t | zPt|  jt   k rXt|  jrXtd|  d td|  d| d dt|  _W n$ tk
r~   td|  d Y nX d S )	NzError! "z" did not respondz
*Error*: "z" did not ping in the last z sFzEntry z( requested, but not in dict! Continuing.)timesleeptimeouts	timestampactiveprintr	   KeyErrorr   r   r   r   sleeper   s    
r   /c                      s   dS )Nzgo to /heartbeatr   r   r   r   r   root    s    r   z
/heartbeat)r   	timeout_sbackground_tasksc                    sv   t   | }t|dd}zt|  js4td|  d W n$ tk
rZ   td|  d Y nX |t| < |t| | dS )NT)r   z*Info*: z	 revived.z registered itself.OK)r   r   r   r   r	   r   Zadd_taskr   )r   r   r   r   entryr   r   r   	heartbeat$   s    
r   z/statusc                     sp   d} t  D ]N\}}| d| d|jr(dnd d|jrNtt|jt  d nd d7 } q| d	7 } t| d
dS )Na-  
    <html>
        <head>
            <title>Uptime monitor</title>
        </head>
        <body>
            <h1>Uptime status:</h1>
            <table>
                <tr>
                    <th>Name</th>
                    <th>Active</th>
                    <th>TTL</th>
                </tr>z<tr><td>z	</td><td>r   disableds z	</td></trz)</table>
        </body>
    </html>
       )contentstatus_code)r   itemsr   strroundr   r   r   )Zhtml_contentr   tr   r   r   print_status2   s
    Hr)   )Zfastapir   r   Zfastapi.responsesr   r   collectionsr
   appZBotr   dictr   
namedtupler   r	   r&   floatr   getr   r   r)   r   r   r   r   <module>   s   
