diff --git a/voice_recognition.py b/voice_recognition.py index deea6e7..608d3c9 100644 --- a/voice_recognition.py +++ b/voice_recognition.py @@ -84,7 +84,7 @@ class SRBuffer(voice_recv.AudioSink): self.wavewriter = {} def on_user_connect(self, username): - self.wavewriter[str(username.id)] = [WaveWriter(username), time.time_ns(), False, False] + self.wavewriter[str(username.id)] = [WaveWriter(username), time.time_ns(), False, True] def on_user_disconnect(self,username): self.wavewriter[str(username.id)].cleanup() @@ -101,7 +101,8 @@ class SRBuffer(voice_recv.AudioSink): if user: self.wavewriter[str(user.id)][0].writeframes(data.pcm) self.wavewriter[str(user.id)][1] = time.time_ns() - self.wavewriter[str(user.id)][2] = True + self.wavewriter[str(user.id)][2] = True #no writes + self.wavewriter[str(user.id)][3] = False #ready to rotate def cleanup(self) -> None: try: @@ -137,7 +138,6 @@ class Transcriber(commands.Cog): else: logger.info("Already connected with other client") logger.info(self.bot.voice_clients) - else: logger.info("Connected") vc = await ctx.author.voice.channel.connect(cls=voice_recv.VoiceRecvClient) @@ -148,11 +148,14 @@ class Transcriber(commands.Cog): @tasks.loop(seconds=0.5) async def check_data(self): for item in self.wsink.wavewriter.values(): - if time.time_ns() - item[1] > 10000: - pass - logger.info(item[0]) - logger.info(item[1]) - logger.info(item[2]) + logger.info("Item %s", item) + if not item[2] and not item[3]: + if time.time_ns() - item[1] > 34000000: + item[3] = True + elif not item[2] and item[3]: + item.rotate() + item[3] = False + item[2] = False logger.info("Diff : %s", time.time_ns() - item[1]) @commands.Cog.listener()