|
@@ -59,6 +59,7 @@ class RepliesFactory(object):
|
|
|
self._start_replies = None
|
|
|
self._random_replies = None
|
|
|
self._pos = None
|
|
|
+ self._latest = None
|
|
|
self.reset()
|
|
|
|
|
|
def reset(self):
|
|
@@ -67,11 +68,20 @@ class RepliesFactory(object):
|
|
|
self.reset_start()
|
|
|
|
|
|
def reset_start(self):
|
|
|
- self._start_replies = glob.glob(self._base_path + "/start_sequence/*.wav")
|
|
|
+ self._start_replies = glob.glob(self._base_path + "/start_sequence/*.opus")
|
|
|
self._start_replies.sort()
|
|
|
|
|
|
def reset_random(self):
|
|
|
- self._random_replies = glob.glob(self._base_path + "/random/*.wav")
|
|
|
+ self._random_replies = glob.glob(self._base_path + "/random/*.opus")
|
|
|
+
|
|
|
+ def clear_latest(self):
|
|
|
+ os.remove(self._latest)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def convert_from_opus(opus_fname):
|
|
|
+ wav_file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
|
|
|
+ subprocess.call("opusdec " + opus_fname + " " + wav_file, shell=True)
|
|
|
+ return wav_file
|
|
|
|
|
|
def next(self):
|
|
|
# On commence par la sequence du début
|
|
@@ -85,6 +95,9 @@ class RepliesFactory(object):
|
|
|
result = random.choice(self._random_replies)
|
|
|
self._random_replies.remove(result)
|
|
|
|
|
|
+ result = self.convert_from_opus(result)
|
|
|
+
|
|
|
+ self._latest = result
|
|
|
return result
|
|
|
|
|
|
|
|
@@ -161,6 +174,8 @@ class SipConnection(object):
|
|
|
sleep(duration)
|
|
|
core.play_file = ""
|
|
|
|
|
|
+ self._replies.clear_latest()
|
|
|
+
|
|
|
# On laisse l'autre l'occassion de reparler
|
|
|
self._conversation.status = ConversationStatus.WAITFORANSWER
|
|
|
|