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:
MythEclipse
2026-06-14 00:45:31 +07:00
parent c886dfb184
commit ac661b64f4
3 changed files with 42 additions and 1 deletions
@@ -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);
}
},
});