This commit is contained in:
2024-09-19 22:59:12 +02:00
parent 1419be48a1
commit 3c177b7538
+11 -8
View File
@@ -84,7 +84,7 @@ class SRBuffer(voice_recv.AudioSink):
self.wavewriter = {} self.wavewriter = {}
def on_user_connect(self, username): 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): def on_user_disconnect(self,username):
self.wavewriter[str(username.id)].cleanup() self.wavewriter[str(username.id)].cleanup()
@@ -101,7 +101,8 @@ class SRBuffer(voice_recv.AudioSink):
if user: if user:
self.wavewriter[str(user.id)][0].writeframes(data.pcm) self.wavewriter[str(user.id)][0].writeframes(data.pcm)
self.wavewriter[str(user.id)][1] = time.time_ns() 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: def cleanup(self) -> None:
try: try:
@@ -137,7 +138,6 @@ class Transcriber(commands.Cog):
else: else:
logger.info("Already connected with other client") logger.info("Already connected with other client")
logger.info(self.bot.voice_clients) logger.info(self.bot.voice_clients)
else: else:
logger.info("Connected") logger.info("Connected")
vc = await ctx.author.voice.channel.connect(cls=voice_recv.VoiceRecvClient) vc = await ctx.author.voice.channel.connect(cls=voice_recv.VoiceRecvClient)
@@ -148,11 +148,14 @@ class Transcriber(commands.Cog):
@tasks.loop(seconds=0.5) @tasks.loop(seconds=0.5)
async def check_data(self): async def check_data(self):
for item in self.wsink.wavewriter.values(): for item in self.wsink.wavewriter.values():
if time.time_ns() - item[1] > 10000: logger.info("Item %s", item)
pass if not item[2] and not item[3]:
logger.info(item[0]) if time.time_ns() - item[1] > 34000000:
logger.info(item[1]) item[3] = True
logger.info(item[2]) elif not item[2] and item[3]:
item.rotate()
item[3] = False
item[2] = False
logger.info("Diff : %s", time.time_ns() - item[1]) logger.info("Diff : %s", time.time_ns() - item[1])
@commands.Cog.listener() @commands.Cog.listener()