This commit is contained in:
2024-09-19 20:44:36 +02:00
parent 2a87153e71
commit 529c8ba20a
+12 -10
View File
@@ -42,7 +42,9 @@ location = "/home/pi/Conjurer/transcripts/"
class WaveWriter: class WaveWriter:
def __init__(self, user_id): def __init__(self, user_id):
self.username = str(user_id) self.username = str(user_id.id)
logger.info("Creating Wavewriter %s", self.username)
logger.info(user_id)
self.present_file_id = 0 self.present_file_id = 0
self.file_name_past = None self.file_name_past = None
@@ -101,20 +103,20 @@ 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)] = [WaveWriter(username), time.time_ns(), False] self.wavewriter[str(username.id)] = [WaveWriter(username), time.time_ns(), False, False]
def on_user_disconnect(self,username): def on_user_disconnect(self,username.id):
self.wavewriter[str(username)].cleanup() self.wavewriter[str(username.id)].cleanup()
self.wavewriter.pop(str(username)) self.wavewriter.pop(str(username.id))
def rotate_user(self,username): def rotate_user(self,username):
self.wavewriter[str(username)].rotate() self.wavewriter[str(username.id)].rotate()
def wants_opus(self) -> bool: def wants_opus(self) -> bool:
return False return False
def write(self, user, data) -> None: def write(self, user, data) -> None:
logger.info("User %s", user) #logger.info("User %s", user)
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()
@@ -162,7 +164,7 @@ class Transcriber(commands.Cog):
vc.listen(self.wsink) vc.listen(self.wsink)
self.check_data.start() self.check_data.start()
@tasks.loop(seconds=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():
logger.info(item[0]) logger.info(item[0])
@@ -174,12 +176,12 @@ class Transcriber(commands.Cog):
async def on_voice_state_update(self, user, before, after): async def on_voice_state_update(self, user, before, after):
if before.channel is None: if before.channel is None:
logger.info("User %s connected to channel %s", user, after.channel.name) logger.info("User %s connected to channel %s", user, after.channel.name)
self.wsink.on_user_connect(user.id) self.wsink.on_user_connect(user)
elif after.channel is None: elif after.channel is None:
logger.info("User %s disconnected from channel %s", user, before.channel.name) logger.info("User %s disconnected from channel %s", user, before.channel.name)
operation = { operation = {
"type": "user_cleanup", "type": "user_cleanup",
user : str(user.id) user : user.id
} }
self.comm_queue.put(operation) self.comm_queue.put(operation)
else: else: