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
|
import subprocess
from datetime import datetime
class Event():
def __init__(self, dial_manager):
self.dial_manager = dial_manager
def get_name(self):
return "generic event"
def get_text(self):
return "event"
def speak(self):
text = self.get_text()
print("speaking:", text)
subprocess.run(["espeak", text])
class FortuneEvent(Event):
def __init__(self, dial_manager):
super().__init__(dial_manager)
def get_name(self):
return "fortune"
def get_text(self):
res = subprocess.run(["fortune", "-s"], stdout=subprocess.PIPE)
return res.stdout.decode("utf-8")
class DirectoryEvent(Event):
def __init__(self, dial_manager):
super().__init__(dial_manager)
def get_name(self):
return "directory"
def get_text(self):
def recursive_build(prefix, sequences):
sequence_list = []
for key in sequences.keys():
sequence = prefix+" "+str(key)
if isinstance(sequences[key], dict):
sequence_list += recursive_build(sequence, sequences[key])
else:
sequence_list.append((sequence, sequences[key]))
return sequence_list
sequences = self.dial_manager.sequences
text = ""
for sequence, event in recursive_build("", sequences):
text += f"Dial {sequence} for {event.get_name()}. "
return text
class OperatorEvent(Event):
def __init__(self, dial_manager):
super().__init__(dial_manager)
def get_name(self):
return "operator"
def get_text(self):
now = datetime.now()
return f"Right now, it is {now.hour} {now.minute}. Dial 4 1 1 for directory."
|