Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

run.py 3.0 KiB

2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
2 miesięcy temu
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. from datetime import datetime
  2. import psutil, time, requests
  3. from win10toast import ToastNotifier
  4. toaster = ToastNotifier()
  5. from datetime import datetime
  6. from config import Gotify
  7. datetime.today().strftime('%Y-%m-%d')
  8. print("Example : firefox.exe")
  9. searching_process = input("Veuillez entrer le processus que vous voulez surveillé : ")
  10. def countdown(founded_process):
  11. heure_depart = time.time()
  12. print("Chronometre en marche !")
  13. print("Process surveillé : " + str(founded_process))
  14. print("Heure de départ (Secondes): " + str( int(heure_depart) ))
  15. while catch_process(searching_process) != None :
  16. print("En attente de fermeture")
  17. heure_arret = time.time()
  18. uptime_process = int(heure_arret) - int(heure_depart)
  19. heures = 0
  20. minutes = 0
  21. secondes = 0
  22. while uptime_process > 3600 :
  23. uptime_process = uptime_process - 3600
  24. heures += 1
  25. if heures < 10 :
  26. heures = '0' + str(heures)
  27. while uptime_process > 60 :
  28. minutes += 1
  29. uptime_process = uptime_process - 60
  30. if minutes < 10 :
  31. minutes = '0' + str(minutes)
  32. secondes = uptime_process
  33. if secondes < 10 :
  34. secondes = '0' + str(secondes)
  35. send_gotify('NSL ' + searching_process, "Uptime du processus : %s:%s:%s " % (heures, minutes, secondes) )
  36. print("Uptime du processus : %s:%s:%s " % (heures, minutes, secondes))
  37. toaster.show_toast("NoSocialLife Counter","Arret du programme : " + searching_process )
  38. toaster.show_toast("NoSocialLife Counter","Uptime du processus : %s:%s:%s " % (heures, minutes, secondes))
  39. date = datetime.today().strftime('%d-%m-%Y')
  40. f = open("logs.txt", "a")
  41. f.write(date + " | Programme : " + searching_process + " | Uptime du processus : %s:%s:%s " % (heures, minutes, secondes))
  42. f.close()
  43. def main():
  44. toaster.show_toast("NoSocialLife Counter","Programme recherché : " + searching_process )
  45. process_running = False
  46. delay = 10
  47. founded_process = catch_process(searching_process)
  48. if founded_process != None :
  49. print("Le processus recherché à été trouvé!")
  50. process_running = True
  51. while process_running == False :
  52. founded_process = catch_process(searching_process)
  53. print("Etat de la recherche : " + str(founded_process))
  54. if founded_process != None :
  55. print("PROCESS TROUVE !")
  56. process_running = True
  57. time.sleep(1)
  58. countdown(founded_process)
  59. def send_gotify(title, message):
  60. resp = requests.post(Gotify['URL'] + '?token=' + Gotify['token_gotify'] , json={
  61. "message": message,
  62. "priority": 2,
  63. "title": title
  64. })
  65. def catch_process(searching_process):
  66. catched = False
  67. for p in psutil.process_iter(attrs=['pid', 'name']):
  68. if p.info['name'] == searching_process :
  69. founded_process = p.info['name']
  70. catched = True
  71. if catched == False :
  72. founded_process = None
  73. return founded_process
  74. if __name__ == '__main__':
  75. main()