From 2d11336736745cecb35ef3ffe83c64b3f69db0d6 Mon Sep 17 00:00:00 2001 From: ClF3 Date: Wed, 24 Jan 2024 00:47:09 +0800 Subject: [PATCH] monitor multiple sites --- main.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 62 insertions(+), 8 deletions(-) diff --git a/main.py b/main.py index f0b194e..bf24ba6 100644 --- a/main.py +++ b/main.py @@ -4,7 +4,10 @@ import urllib.request from datetime import datetime import time recent=[] -history=[] +blog=[] +git=[] +cloud=[] +code=[] width=720 height=50 red=(0x00,0x00,0xff) @@ -12,7 +15,8 @@ orange=(0x00,0x66,0xff) yellow=(0x00,0xcc,0xff) light_green=(0x33,0xff,0xcc) green=(0x00,0xcc,0x00) -def update_history(): +imgpath="/tmp/uptime-graph/" +def update_history(history): average=0 for i in recent: average+=i @@ -24,7 +28,7 @@ def fill(img,pos,color): for i in range(5): for j in range(height): img[j,i+5*pos,:]=[color[0]%256,color[1]%256,color[2]%256] -def update_graph(): +def update_graph(filename,history): img=np.ones([height,width,3],dtype=np.uint8) for i,delay in enumerate(history): if delay>=5000: @@ -37,7 +41,7 @@ def update_graph(): fill(img,i,light_green) else: fill(img,i,green) - cv2.imwrite("/tmp/uptime-graph/image.png", img) + cv2.imwrite(imgpath+filename, img) @@ -58,7 +62,7 @@ if __name__=="__main__": while True: if datetime.now().second==0 and datetime.now().minute!=lastminute: # if True: - time.sleep(0.5) + time.sleep(1) (code,delay)=testConnect("https://blog.clf3.org") print(code,end=" ") if code/100<=3: @@ -68,8 +72,58 @@ if __name__=="__main__": if len(recent)<10: recent.append(delay) else: - update_history() - update_graph() + update_history(blog) + update_graph("blog.png",blog) recent=[] recent.append(delay) - lastminute=datetime.now().minute \ No newline at end of file + + elif datetime.now().second==10 and datetime.now().minute!=lastminute: + # if True: + time.sleep(1) + (code,delay)=testConnect("https://cloud.clf3.org") + print(code,end=" ") + if code/100<=3: + print("connected",delay,"ms") + else: + print("error") + if len(recent)<10: + recent.append(delay) + else: + update_history(cloud) + update_graph("cloud.png",cloud) + recent=[] + recent.append(delay) + + elif datetime.now().second==20 and datetime.now().minute!=lastminute: + # if True: + time.sleep(1) + (code,delay)=testConnect("https://code.clf3.org") + print(code,end=" ") + if code/100<=3: + print("connected",delay,"ms") + else: + print("error") + if len(recent)<10: + recent.append(delay) + else: + update_history(code) + update_graph("code.png",code) + recent=[] + recent.append(delay) + + elif datetime.now().second==30 and datetime.now().minute!=lastminute: + # if True: + time.sleep(1) + (code,delay)=testConnect("https://git.clf3.org") + print(code,end=" ") + if code/100<=3: + print("connected",delay,"ms") + else: + print("error") + if len(recent)<10: + recent.append(delay) + else: + update_history(git) + update_graph("git.png",git) + recent=[] + recent.append(delay) \ No newline at end of file