chore(services): update components based on recent changes
Changes: services/discord-gateway/src/app/bootstrap.ts | 24 ++++++++++++++++++++++++ services/discord-gateway/src/modules/voice-recording/recorder.ts | 10 ++++++++++ services/discord-gateway/src/modules/voice-recording/recorder/speakingHandler.ts | 9 ++++++++- 3 files changed, 42 insertions(+), 1 deletion(-)
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
|
||||
import { config } from "../../shared/config/config.js";
|
||||
import type { EventBroadcaster } from "../event-broadcaster/eventBroadcaster.js";
|
||||
import type { VoicePcmWsClient } from "../voice-pcm-ws/index.js";
|
||||
import {
|
||||
createRecordingSession,
|
||||
type RecordingSession,
|
||||
@@ -30,6 +31,12 @@ export function setEventBroadcaster(broadcaster: EventBroadcaster | undefined) {
|
||||
_eventBroadcaster = broadcaster;
|
||||
}
|
||||
|
||||
let _pcmWsClient: VoicePcmWsClient | undefined;
|
||||
|
||||
export function setPcmWsClient(client: VoicePcmWsClient | undefined) {
|
||||
_pcmWsClient = client;
|
||||
}
|
||||
|
||||
const recordingsDir = config.RECORDINGS_DIR;
|
||||
|
||||
// Ensure recordings directory exists
|
||||
@@ -133,6 +140,9 @@ export async function startRecording(
|
||||
eventBroadcaster: _eventBroadcaster,
|
||||
activeSessions,
|
||||
recordingsDir,
|
||||
pcmSender: _pcmWsClient
|
||||
? (pcm, userId) => _pcmWsClient.sendPcm(userId, pcm)
|
||||
: undefined,
|
||||
});
|
||||
|
||||
receiver.speaking.on("start", speakingHandler);
|
||||
|
||||
@@ -17,6 +17,8 @@ export interface SpeakingHandlerContext {
|
||||
eventBroadcaster: EventBroadcaster | undefined;
|
||||
activeSessions: Map<string, RecordingSession>;
|
||||
recordingsDir: string;
|
||||
/** Direct WS sender for real-time PCM — takes priority over Redis if set. */
|
||||
pcmSender?: (pcm: Buffer, userId: string) => void;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -40,6 +42,7 @@ export function createSpeakingHandler(
|
||||
eventBroadcaster,
|
||||
activeSessions,
|
||||
recordingsDir,
|
||||
pcmSender,
|
||||
} = ctx;
|
||||
|
||||
return async (userId: string) => {
|
||||
@@ -81,7 +84,11 @@ export function createSpeakingHandler(
|
||||
receiver,
|
||||
userDir,
|
||||
onPcmData: (pcm) => {
|
||||
eventBroadcaster?.voicePcmData(pcm, userId);
|
||||
if (pcmSender) {
|
||||
pcmSender(pcm, userId);
|
||||
} else {
|
||||
eventBroadcaster?.voicePcmData(pcm, userId);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user