mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-16 23:02:10 +00:00
aa
This commit is contained in:
+19
-8
@@ -3,10 +3,10 @@ import wave
|
|||||||
|
|
||||||
import assemblyai as aai
|
import assemblyai as aai
|
||||||
import discord
|
import discord
|
||||||
from discord.ext import commands, voice_recv
|
from discord.ext import commands, voice_recv, tasks
|
||||||
from discord.opus import Decoder as OpusDecoder
|
from discord.opus import Decoder as OpusDecoder
|
||||||
from queue import Queue, Empty
|
from queue import Queue, Empty
|
||||||
|
import time
|
||||||
# Replace with your API key
|
# Replace with your API key
|
||||||
aai.settings.api_key = "aa9962f0088a449a9c4ab2361e96cc08"
|
aai.settings.api_key = "aa9962f0088a449a9c4ab2361e96cc08"
|
||||||
discord.opus._load_default()
|
discord.opus._load_default()
|
||||||
@@ -99,7 +99,7 @@ class SRBuffer(voice_recv.AudioSink):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.wavewriter = {
|
self.wavewriter = {
|
||||||
"346956223645614080" : WaveWriter("346956223645614080")
|
"346956223645614080" : [WaveWriter("346956223645614080"), time.time_ns(), False]
|
||||||
}
|
}
|
||||||
|
|
||||||
def on_user_connect(self, username):
|
def on_user_connect(self, username):
|
||||||
@@ -116,7 +116,9 @@ class SRBuffer(voice_recv.AudioSink):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def write(self, user, data) -> None:
|
def write(self, user, data) -> None:
|
||||||
self.wavewriter[str(user.id)].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)][2] = True
|
||||||
|
|
||||||
def cleanup(self) -> None:
|
def cleanup(self) -> None:
|
||||||
try:
|
try:
|
||||||
@@ -130,7 +132,6 @@ class SRBuffer(voice_recv.AudioSink):
|
|||||||
class Transcriber(commands.Cog):
|
class Transcriber(commands.Cog):
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
self._last_member = None
|
|
||||||
self.wsink = SRBuffer()
|
self.wsink = SRBuffer()
|
||||||
self.threads = []
|
self.threads = []
|
||||||
self.comm_queue = Queue()
|
self.comm_queue = Queue()
|
||||||
@@ -160,6 +161,14 @@ class Transcriber(commands.Cog):
|
|||||||
logger.info(self.bot.voice_clients)
|
logger.info(self.bot.voice_clients)
|
||||||
vc.listen(self.wsink)
|
vc.listen(self.wsink)
|
||||||
|
|
||||||
|
@tasks.loop(seconds=5)
|
||||||
|
async def check_data(self):
|
||||||
|
for item in self.wsink.wavewriter.values():
|
||||||
|
print(item[0])
|
||||||
|
print(item[1])
|
||||||
|
print(item[2])
|
||||||
|
print(time.time_ns())
|
||||||
|
|
||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
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:
|
||||||
@@ -167,9 +176,11 @@ class Transcriber(commands.Cog):
|
|||||||
self.wsink.on_user_connect(user.id)
|
self.wsink.on_user_connect(user.id)
|
||||||
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)
|
||||||
self.wsink.on_user_disconnect(user.id)
|
operation = {
|
||||||
elif after.self_mute or after.mute:
|
"type": "user_cleanup",
|
||||||
self.wsink.rotate_user(user.id)
|
user : str(user.id)
|
||||||
|
}
|
||||||
|
self.comm_queue.put(operation)
|
||||||
else:
|
else:
|
||||||
logger.info("User VC status changed %s", user.id)
|
logger.info("User VC status changed %s", user.id)
|
||||||
logger.info("Before %s", before)
|
logger.info("Before %s", before)
|
||||||
|
|||||||
Reference in New Issue
Block a user