§
    «0ja  ã                   ób   — d dl Z d dlmZ d dlmZ d dlZd dlmZmZm	Z	 d dl
mZ d dlZd„ Zd„ ZdS )é    N)ÚBinLogStreamReader)ÚWriteRowsEvent)Úline_bot_apiÚbuild_event_messageÚgenerate_location_image)ÚTextSendMessagec                 óN   ‡ ‡— dddddœŠˆˆ fd„}‰                       |¦  «         d S )NÚ	localhostiê  ÚwebuserÚU1224006)ÚhostÚportÚuserÚpasswdc                  ó:  •— t          d¦  «         	 t          j        ¦   «         } |                      ¦   «         5 }|                     d¦  «         |                     ¦   «         }|d         }|d         }d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          n*# t          $ r}t          d|› �¦  «         Y d }~d S d }~ww xY wt          j	        dd¦  «        }	 t          ‰|||ddt          gd	gd
g¬¦	  «	        }|D ]Z}|j        D ];}	t          j        ¦   «         }
‰                     d|
d¬¦  «         t          ¦   «          Œ<‰                     d¦  «         Œ[d S # t          $ r2}t          d|› �¦  «         ‰                     d¦  «         Y d }~d S d }~ww xY w)Nu#   ðŸ“¡ è³‡æ–™åº«å¯¦æ™‚ç›£è�½å•Ÿå‹•...zSHOW MASTER STATUSÚFileÚPositionu   ç„¡æ³•ç�²å�–è³‡æ–™åº«ç‹€æ…‹: éd   i'  TÚ	mmwave_v4Úactivity_logs)	Úconnection_settingsÚ	server_idÚlog_fileÚlog_posÚresume_streamÚblockingÚonly_eventsÚonly_schemasÚonly_tablesÚ	ui_updateú/)Ú	namespacer   u   è³‡æ–™åº«ç›£è�½å‡ºéŒ¯: é   )ÚprintÚdatabaseÚget_db_connectionÚcursorÚexecuteÚfetchoneÚcloseÚ	ExceptionÚrandomÚrandintr   r   ÚrowsÚget_current_ui_stateÚemitÚcheck_and_push_alertsÚsleep)ÚdbÚcurÚstatusr   r   ÚeÚrandom_server_idÚstreamÚbinlogeventÚrowÚstateÚmysql_settingsÚsocketios              €€ú3/home/mmwave/public_html/mmwave/utils/db_monitor.pyÚrunzstart_db_monitor.<locals>.run   s3  ø€ ÝÐ3Ñ4Ô4Ð4ð
	ÝÔ+Ñ-Ô-ˆBØ—’‘”ð - Ø—’Ð0Ñ1Ô1Ð1ØŸš™œ�Ø! &œ>�Ø  Ô,�ð	-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð
 �HŠH‰JŒJˆJˆJøÝð 	ð 	ð 	ÝÐ5°!Ð5Ð5Ñ6Ô6Ð6ØˆFˆFˆFˆFˆFøøøøð	øøøõ "œ>¨#¨tÑ4Ô4Ðð	å'Ø$2Ø*Ø!ØØ"ØÝ+Ð,Ø)˜]Ø,Ð-ð
ñ 
ô 
ˆFð  &ð 
"ð 
"�Ø&Ô+ð ,ð ,�Cå$Ô9Ñ;Ô;�EØ—M’M +¨uÀ�MÑDÔDÐDõ *Ñ+Ô+Ð+Ð+ð —’˜qÑ!Ô!Ð!Ð!ð
"ð 
"øõ ð 	ð 	ð 	ÝÐ/¨AÐ/Ð/Ñ0Ô0Ð0Ø�NŠN˜1ÑÔÐÐÐÐÐÐÐøøøøð	øøøsS   ’'B ¹:A?Á3B Á?BÂB ÂBÂB Â
CÂ)CÃCÃA=E Å
FÅ('FÆF)Ústart_background_task)r=   r?   r<   s   ` @r>   Ústart_db_monitorrA   
   sY   øø€ ð ØØØð	ð €Nð/ð /ð /ð /ð /ð /ðd ×"Ò" 3Ñ'Ô'Ð'Ð'Ð'ó    c                  óœ  — d} 	 t          j        ¦   «         } |                      ¦   «         5 }d}|                     |¦  «         |                     ¦   «         }|�ri|d         }|d         }|d         }|d         }|d         �|d         nd}|d	         �|d	         nd}	t          j        ||	¦  «        }
t          d
||	¦  «        }|                     d¦  «         |                     ¦   «         }|D ]Ó}|                     d||d         f¦  «         t          ||||d         |d         ||
¬¦  «        }t          |¬¦  «        g}|r| 
                    |¦  «         	 t          j        |d         |¦  «         t          d|
› d|d         › �¦  «         Œ¢# t          $ r%}t          d|d         › d|› �¦  «         Y d}~ŒÌd}~ww xY w|                      ¦   «          ddd¦  «         n# 1 swxY w Y   n)# t          $ r}t          d|› �¦  «         Y d}~nd}~ww xY w| r|                      ¦   «          dS dS # | r|                      ¦   «          w w xY w)u    æª¢æŸ¥ä¸¦ç™¼é€� LINE Na'  
                SELECT e.event_id, e.event_type, d.device_name, u.name as owner_name, rm.last_x, rm.last_y
                FROM event_logs e
                JOIN radar_devices d ON e.device_id = d.device_id
                JOIN rooms rm ON d.room_id = rm.room_id
                JOIN users u ON u.role = 'admin'
                WHERE e.handled = 0 
                AND e.event_time >= NOW() - INTERVAL 10 MINUTE
                AND e.event_id NOT IN (SELECT event_id FROM notifications)
                ORDER BY e.event_time DESC LIMIT 1
            Úevent_idÚ
event_typeÚdevice_nameÚ
owner_nameÚlast_xz---Úlast_yÚalertzõ
                    SELECT user_id, name, role, line_user_id 
                    FROM users 
                    WHERE line_user_id IS NOT NULL 
                    AND is_active = 1 
                    AND notify_enabled = 1
                zOINSERT INTO notifications (event_id, user_id, sent_time) VALUES (%s, %s, NOW())Úuser_idÚnameÚrole)Úzone)ÚtextÚline_user_idu*   âœ… æˆ�åŠŸç™¼é€�è­¦å ±(å�«åœ–ç‰‡èˆ‡ä½�ç½®:u   )çµ¦ u
   ç™¼é€�çµ¦ u	    å¤±æ•—: u    è™•ç�†è­¦å ±æŽ¨æ’­ç™¼ç”ŸéŒ¯èª¤: )r%   r&   r'   r(   r)   Úget_zone_namer   Úfetchallr   r   Úappendr   Úpush_messager$   r+   Úcommitr*   )r3   r'   ÚsqlÚeventrD   rE   rF   rG   Úx_strÚy_strrN   Úimg_msgÚ
recipientsr   Úmsg_contentÚmsgsÚline_er6   s                     r>   r1   r1   H   s"  € à	€BðCÝÔ'Ñ)Ô)ˆØ�YŠY‰[Œ[ð ;	˜Fð
ˆCð �NŠN˜3ÑÔÐØ—O’OÑ%Ô%ˆEàñ *LØ  Ô,�Ø" <Ô0�
Ø# MÔ2�Ø" <Ô0�
Ø+0°¬?Ð+F˜˜hœ˜ÈE�Ø+0°¬?Ð+F˜˜hœ˜ÈE�ÝÔ-¨e°UÑ;Ô;�õ 2°(¸EÀ5ÑIÔI�ð —’ð  ñ ô ð ð $Ÿ_š_Ñ.Ô.�
à&ð Lð L�Dà—N’NÐ#tØ$,¨d°9¬oÐ#>ñ@ô @ð @õ #6Ø" J°¸TÀ&¼\È4ÐPVÌ<ÐYaÐhlð#ñ #ô #�Kõ
 ,°Ð=Ñ=Ô=Ð>�DØð -ØŸš GÑ,Ô,Ð,ðLå$Ô1°$°~Ô2FÈÑMÔMÐMÝÐdÈ4ÐdÐdÐVZÐ[aÔVbÐdÐdÑeÔeÐeÐeøÝ$ð Lð Lð LÝÐJ¨4°¬<ÐJÐJÀ&ÐJÐJÑKÔKÐKÐKÐKÐKÐKÐKøøøøðLøøøð �IŠI‰KŒKˆKðw;	ð ;	ð ;	ñ ;	ô ;	ð ;	ð ;	ð ;	ð ;	ð ;	ð ;	øøøð ;	ð ;	ð ;	ð ;	øøõx ð ð ð ÝÐ4°Ð4Ð4Ñ5Ô5Ð5Øˆˆˆˆøøøøðøøøð ð 	Ø�HŠH‰JŒJˆJˆJˆJð	ð 	øˆ2ð 	Ø�HŠH‰JŒJˆJˆJð	øøøs}   „'G/ «D.G#Å6FÆG#Æ
G ÆF;Æ6G#Æ;G Ç G#ÇG/ Ç#G'Ç'G/ Ç*G'Ç+G/ Ç.H2 Ç/
HÇ9HÈH2 ÈHÈH2 È2I)ÚloggingÚpymysqlreplicationr   Úpymysqlreplication.row_eventr   r%   Úroutes.liner   r   r   Úlinebot.modelsr   r,   rA   r1   © rB   r>   ú<module>re      s¢   ðà €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø €€€Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ *Ð *Ð *Ð *Ð *Ð *Ø €€€ð;(ð ;(ð ;(ð|Fð Fð Fð Fð FrB   