first commit

This commit is contained in:
ClF3 2024-01-22 15:58:22 +08:00
commit 4aca699e13
2 changed files with 77 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.png
*.jpg
*.bmp
*.jpeg

73
main.py Normal file
View File

@ -0,0 +1,73 @@
import cv2
import numpy as np
import urllib.request
from datetime import datetime
recent=[]
history=[]
width=720
height=100
red=(0x00,0x00,0xff)
orange=(0x00,0x66,0xff)
yellow=(0x00,0xcc,0xff)
light_green=(0x33,0xff,0xcc)
green=(0x00,0xcc,0x00)
def update_history():
average=0
for i in recent:
average+=i
average/=len(recent)
if len(history)>=144:
del(history[0])
history.append(average)
def fill(img,pos,color):
for i in range(5):
for j in range(100):
img[j,i+5*pos,:]=[color[0]%256,color[1]%256,color[2]%256]
def update_graph():
img=np.ones([height,width,3],dtype=np.uint8)
for i,delay in enumerate(history):
if delay>=5000:
fill(img,i,red)
elif delay>=2000:
fill(img,i,orange)
elif delay>=1000:
fill(img,i,yellow)
elif delay>=500:
fill(img,i,light_green)
else:
fill(img,i,green)
cv2.imwrite("image.bmp", img)
def testConnect(url):
try:
time1=datetime.now().timestamp()
code=urllib.request.urlopen(url,timeout=5).getcode()
time2=datetime.now().timestamp()
delay=int((time2-time1)*1000)
except:
code=404
if code/100>=4:
delay=10000
return (code,delay)
if __name__=="__main__":
lastminute=-1
while True:
if datetime.now().second==0 and datetime.now().minute!=lastminute:
# if True:
(code,delay)=testConnect("https://blog.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()
update_graph()
recent=[]
recent.append(delay)
lastminute=datetime.now().minute