1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| racine=Tkinter.Tk()
isDown = False
isOpen = False
def MyTimer(isOpen,tempo = float(time)):
#si linux
if sys.platform == "linux2":
lPing = subprocess.Popen(["ping","-c", "1 ", ip ],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
elif sys.platform == "win32":
lPing = subprocess.Popen(["ping","-n", "1 ", ip ],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
sLigne, erreur = lPing.communicate()
print sLigne
transmis = 0
received = 0
loss = 100
time = 0
#si linux
if sys.platform == "linux2":
info_reg = info_reg = re.search(r'(\d+) packets transmitted',sLigne,re.M)
if info_reg:
transmis = int(info_reg.group(1))
info_reg = info_reg = re.search(r'(\d+) received',sLigne,re.M)
if info_reg:
received = int(info_reg.group(1))
info_reg = info_reg = re.search(r'(\d+)% packet loss',sLigne,re.M)
if info_reg:
loss = int(info_reg.group(1))
if loss == 100:
loss = 1
info_reg = info_reg = re.search(r'time (\d+)ms',sLigne,re.M)
if info_reg:
time = int(info_reg.group(1))
#info_reg = info_reg = re.search(r'(\d+) packets transmitted, (\d+) received, (.+)% packet loss, time (\d+)ms',sLigne,re.M)
elif sys.platform == "win32":
info_reg = info_reg = re.search(r'envoy\Ds = (\d+)',sLigne,re.M)
if info_reg:
transmis = int(info_reg.group(1))
info_reg = info_reg = re.search(r're\Dus = (\d+)',sLigne,re.M)
if info_reg:
received = int(info_reg.group(1))
info_reg = info_reg = re.search(r'perte (\d+)%',sLigne,re.M)
if info_reg:
loss = int(info_reg.group(1))
info_reg = info_reg = re.search(r'Moyenne = (\d+)ms',sLigne,re.M)
if info_reg:
time = int(info_reg.group(1))
#info_reg = info_reg = re.search(r'Paquets : envoyés = (\d+), reçus = (\d+), perdus = (\d+) perte (.+)%',sLigne,re.M)
now = datetime.datetime.now()
#si l'expression régulière a donné un résultat
if transmis > 0:
"""transmis = int(info_reg.group(1))
received = int(info_reg.group(2))
loss = int(info_reg.group(3))
time = int(info_reg.group(4))"""
isDown = False
if received == 0:
isDown = True
#si le serveur répond après avoir été down et qu'il y a un fichier à uploader alors upload
#recupere les parametres du fichier
if isDown == False:
showroot()
#Ferme la fenêtre pour encoder les pointages locales
if isOpen == True:
#close window
#racine.destroy()
hideme()
#fen_upload(racine)
isOpen = False
if(os.path.exists(pathLoc) and os.path.getsize(pathLoc) > 0):
transport = paramiko.Transport((ip, port))
transport.connect(username = user, password = passwd)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(pathLoc,pathServ)
sftp.close()
transport.close()
#print 'Upload done.'
os.remove(pathLoc) #supprime fichier
else:
if(received == 0 and isOpen == False):
print now.strftime("%d/%m/%YT%H:%M:%S")
#fen_matricule(racine)
showroot()
isOpen = True
else:
if(received == 0 and isOpen == False):
print now.strftime("%d/%m/%YT%H:%M:%S")
#fen_matricule(racine)
showroot()
isOpen = True
threading.Timer(tempo, MyTimer, [isOpen,tempo]).start()
def showroot():
racine.deiconify()
def hideme():
racine.withdraw()
MyTimer(isOpen,float(time))
fond=Tkinter.Canvas(racine, width=300, height=200, background='darkgray')
fond.pack()
texte=Tkinter.Label(fond, text="Matricule", fg="black")
texte.pack(side=Tkinter.LEFT)
valsaisir=Tkinter.StringVar() #variable to get value
saisie=Tkinter.Entry(textvariable=valsaisir, width=30)
saisie.pack()
bouton=Tkinter.Button(racine, text="OK", command=lambda: save(valsaisir.get(),racine,saisie)).pack(side=Tkinter.BOTTOM)
"""
bouton=Tkinter.Button(racine, text="Quitter", command=racine.quit)
bouton.pack(side=Tkinter.BOTTOM)
"""
hideme()
racine.mainloop() |
Partager