-
Notifications
You must be signed in to change notification settings - Fork 0
/
greeter.py
73 lines (61 loc) · 1.9 KB
/
greeter.py
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
#!/usr/bin/python3
import subprocess
from pydub.playback import play
from pydub import AudioSegment
import time
class Person:
ip = 0
home = True
song = ""
arrivalAnnouncement = ""
departureAnnouncement = ""
person1 = Person()
person1.ip = "192.168.1.135"
person1.song = ""
person1.arrivalSong = ""
person2 = Person()
person2.ip = "192.168.1.135"
person2.song = ""
person2.arrivalSong = ""
def checkIfArrived(ip):
output = ""
try:
output = subprocess.check_output(['ping', ip, '-c 1', '-w 2']).decode("utf-8")
except subprocess.CalledProcessError as error:
print(error)
if "0% packet loss" in output:
return True
return False
def doublecheckIfArrived(ip):
output = ""
try:
output = subprocess.check_output(['ping', ip, '-c 5', '-w 5']).decode("utf-8")
except subprocess.CalledProcessError as error:
print(error)
print("Returning false")
return False
print(output)
if "100% packet loss" not in output:
print("Reutrning true")
return True
def updateStatus(input):
if input.home == False:
if checkIfArrived(input.ip) == True:
print(str(input) + " has arrived")
play(AudioSegment.from_mp3("announcing.mp3"))
play(AudioSegment.from_mp3(input.arrivalAnnouncement))
play(AudioSegment.from_mp3(input.song))
input.home = True
elif input.home == True and checkIfArrived(input.ip) == False:
if doublecheckIfArrived(input.ip) == False:
input.home = False
play(AudioSegment.from_mp3("announcing.mp3"))
print(str(input) + " has left")
play(AudioSegment.from_mp3(input.departureAnnouncement))
startup_sound = AudioSegment.from_mp3("bootup.mp3")
play(startup_sound)
while(1):
print("Start of one iteration")
updateStatus(person1)
updateStatus(person2)
time.sleep(1)