mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00:00
aa
This commit is contained in:
+16
-8
@@ -32,8 +32,11 @@ SAMPLE_WIDTH = OpusDecoder.SAMPLE_SIZE // OpusDecoder.CHANNELS
|
||||
SAMPLING_RATE = OpusDecoder.SAMPLING_RATE
|
||||
|
||||
|
||||
#rotate file after there is 0.5s between last received pcm for user.
|
||||
#delete messsages after user disconnect
|
||||
|
||||
logger = logging.getLogger("discord")
|
||||
location = "/home/pi/Conjurer/"
|
||||
location = "/home/pi/Conjurer/transcripts/"
|
||||
|
||||
|
||||
class WaveWriter:
|
||||
@@ -43,7 +46,7 @@ class WaveWriter:
|
||||
self.present_file_id = 0
|
||||
self.file_name_past = None
|
||||
|
||||
self.file_name_present = location + self.username + str(self.present_file_id)
|
||||
self.file_name_present = location + self.username + "_" + str(self.present_file_id)
|
||||
self.transcript_file_present : wave.Wave_write = wave.open(
|
||||
self.file_name_present, "wb"
|
||||
)
|
||||
@@ -51,7 +54,7 @@ class WaveWriter:
|
||||
self.transcript_file_present.setsampwidth(SAMPLE_WIDTH)
|
||||
self.transcript_file_present.setframerate(SAMPLING_RATE)
|
||||
|
||||
self.file_name_future = location + self.username + str(self.present_file_id + 1)
|
||||
self.file_name_future = location + self.username + "_" + str(self.present_file_id + 1)
|
||||
self.transcript_file_future : wave.Wave_write = wave.open(
|
||||
self.file_name_future, "wb"
|
||||
)
|
||||
@@ -66,9 +69,7 @@ class WaveWriter:
|
||||
self.present_file_id += 1
|
||||
self.file_name_present = self.file_name_future
|
||||
self.transcript_file_present = self.transcript_file_future
|
||||
self.transcript_file_future = (
|
||||
location + self.username + str(self.present_file_id + 1)
|
||||
)
|
||||
self.file_name_future = location + self.username + "_" + str(self.present_file_id + 1)
|
||||
self.transcript_file_future : wave.Wave_write = wave.open(
|
||||
self.file_name_future, "wb"
|
||||
)
|
||||
@@ -106,12 +107,15 @@ class SRBuffer(voice_recv.AudioSink):
|
||||
|
||||
def on_user_disconnect(self,username):
|
||||
self.wavewriter[username].cleanup()
|
||||
self.wavewriter.pop(username)
|
||||
|
||||
def rotate_user(self,username):
|
||||
self.wavewriter[username].rotate()
|
||||
|
||||
def wants_opus(self) -> bool:
|
||||
return False
|
||||
|
||||
def write(self, user, data) -> None:
|
||||
logger.info("user: %s", user)
|
||||
self.wavewriter[str(user.id)].writeframes(data.pcm)
|
||||
|
||||
def cleanup(self) -> None:
|
||||
@@ -160,10 +164,14 @@ class Transcriber(commands.Cog):
|
||||
async def on_voice_state_update(self, user, before, after):
|
||||
if before.channel is None:
|
||||
logger.info("User %s connected to channel %s", user, after.channel.name)
|
||||
self.wsink.on_user_connect(user.id)
|
||||
elif after.channel is None:
|
||||
logger.info("User %s disconnected from channel %s", user, before.channel.name)
|
||||
self.wsink.on_user_disconnect(user.id)
|
||||
elif after.self_mute or after.mute:
|
||||
self.wsink.rotate_user(user.id)
|
||||
else:
|
||||
logger.info("User VC status changed %s", user)
|
||||
logger.info("User VC status changed %s", user.id)
|
||||
logger.info("Before %s", before)
|
||||
logger.info("After %s", after)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user