refactor: update import statements to use .js extensions
- Changed all import statements across the project to include the .js extension for consistency and to comply with ES module standards. - Updated imports in various files including bootstrap.ts, shutdown.ts, config.ts, and many others. - Ensured that all related modules and types are correctly imported with the new extension.
This commit is contained in:
+11
-11
@@ -1,15 +1,15 @@
|
|||||||
import { Client } from "discord.js-selfbot-v13";
|
import { Client } from "discord.js-selfbot-v13";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { closeDatabase, initializeDatabase } from "../database/drizzle";
|
import { closeDatabase, initializeDatabase } from "../database/drizzle.js";
|
||||||
import { createDiscordClientOptions } from "../discordClientOptions";
|
import { createDiscordClientOptions } from "../discordClientOptions.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { startPendingAIAnalysisWorker } from "../moderation/aiAnalyzer";
|
import { startPendingAIAnalysisWorker } from "../moderation/aiAnalyzer.js";
|
||||||
import { syncBacklogMessages } from "../moderation/backlogSync";
|
import { syncBacklogMessages } from "../moderation/backlogSync.js";
|
||||||
import { registerMessageCapture } from "../moderation/messageCapture";
|
import { registerMessageCapture } from "../moderation/messageCapture.js";
|
||||||
import { discordPlayer } from "../player";
|
import { discordPlayer } from "../player.js";
|
||||||
import { VoiceController } from "../voiceController";
|
import { VoiceController } from "../voiceController.js";
|
||||||
import { startWebserver } from "../webserver";
|
import { startWebserver } from "../webserver.js";
|
||||||
import { createGracefulShutdown } from "./shutdown";
|
import { createGracefulShutdown } from "./shutdown.js";
|
||||||
|
|
||||||
export async function initializeApp() {
|
export async function initializeApp() {
|
||||||
const logger = createChildLogger("bot");
|
const logger = createChildLogger("bot");
|
||||||
|
|||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
import type { Client } from "discord.js-selfbot-v13";
|
import type { Client } from "discord.js-selfbot-v13";
|
||||||
import type { closeDatabase } from "../database/drizzle";
|
import type { closeDatabase } from "../database/drizzle.js";
|
||||||
import type { createChildLogger } from "../logger";
|
import type { createChildLogger } from "../logger.js";
|
||||||
import type { discordPlayer } from "../player";
|
import type { discordPlayer } from "../player.js";
|
||||||
import type { VoiceController } from "../voiceController";
|
import type { VoiceController } from "../voiceController.js";
|
||||||
|
|
||||||
type Logger = ReturnType<typeof createChildLogger>;
|
type Logger = ReturnType<typeof createChildLogger>;
|
||||||
type CloseDatabase = typeof closeDatabase;
|
type CloseDatabase = typeof closeDatabase;
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { ConfigError } from "./errors.ts";
|
import { ConfigError } from "./errors.js";
|
||||||
|
|
||||||
const configSchema = z
|
const configSchema = z
|
||||||
.object({
|
.object({
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import Database from "better-sqlite3";
|
|||||||
import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3";
|
import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3";
|
||||||
import { drizzle as drizzlePostgres } from "drizzle-orm/node-postgres";
|
import { drizzle as drizzlePostgres } from "drizzle-orm/node-postgres";
|
||||||
import { Pool } from "pg";
|
import { Pool } from "pg";
|
||||||
import { config } from "../config.ts";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger.ts";
|
import { createChildLogger } from "../logger.js";
|
||||||
import * as schema from "./schema.ts";
|
import * as schema from "./schema.js";
|
||||||
|
|
||||||
const logger = createChildLogger("drizzle");
|
const logger = createChildLogger("drizzle");
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ import Database from "better-sqlite3";
|
|||||||
import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3";
|
import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3";
|
||||||
import { migrate as migrateSqlite } from "drizzle-orm/better-sqlite3/migrator";
|
import { migrate as migrateSqlite } from "drizzle-orm/better-sqlite3/migrator";
|
||||||
import { migrate as migratePostgres } from "drizzle-orm/node-postgres/migrator";
|
import { migrate as migratePostgres } from "drizzle-orm/node-postgres/migrator";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { closeDatabase, initializeDatabase } from "./drizzle";
|
import { closeDatabase, initializeDatabase } from "./drizzle.js";
|
||||||
|
|
||||||
const logger = createChildLogger("migrate");
|
const logger = createChildLogger("migrate");
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import {
|
|||||||
sqliteTable,
|
sqliteTable,
|
||||||
text as sqliteText,
|
text as sqliteText,
|
||||||
} from "drizzle-orm/sqlite-core";
|
} from "drizzle-orm/sqlite-core";
|
||||||
import { config } from "../config.ts";
|
import { config } from "../config.js";
|
||||||
|
|
||||||
// PostgreSQL Schema
|
// PostgreSQL Schema
|
||||||
// ==================
|
// ==================
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { desc, eq } from "drizzle-orm";
|
import { desc, eq } from "drizzle-orm";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { getDatabase } from "./drizzle";
|
import { getDatabase } from "./drizzle.js";
|
||||||
import {
|
import {
|
||||||
type VoiceRecording,
|
type VoiceRecording,
|
||||||
type VoiceRecordingInsert,
|
type VoiceRecordingInsert,
|
||||||
voiceRecordingsTable,
|
voiceRecordingsTable,
|
||||||
} from "./schema";
|
} from "./schema.js";
|
||||||
|
|
||||||
const logger = createChildLogger("voice-recording-repo");
|
const logger = createChildLogger("voice-recording-repo");
|
||||||
|
|
||||||
|
|||||||
+14
-14
@@ -8,20 +8,20 @@ import express, {
|
|||||||
type Response,
|
type Response,
|
||||||
} from "express";
|
} from "express";
|
||||||
import helmet from "helmet";
|
import helmet from "helmet";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import type { createChildLogger } from "../logger";
|
import type { createChildLogger } from "../logger.js";
|
||||||
import type { MediaController } from "../media/mediaController";
|
import type { MediaController } from "../media/mediaController.js";
|
||||||
import type { ModerationBroadcaster } from "../moderation/types";
|
import type { ModerationBroadcaster } from "../moderation/types.js";
|
||||||
import { createAnalysisRoutes } from "../routes/analysisRoutes";
|
import { createAnalysisRoutes } from "../routes/analysisRoutes.js";
|
||||||
import { createMediaRoutes } from "../routes/mediaRoutes";
|
import { createMediaRoutes } from "../routes/mediaRoutes.js";
|
||||||
import { createMessageRoutes } from "../routes/messageRoutes";
|
import { createMessageRoutes } from "../routes/messageRoutes.js";
|
||||||
import { createRecordingsRoutes } from "../routes/recordingsRoutes";
|
import { createRecordingsRoutes } from "../routes/recordingsRoutes.js";
|
||||||
import { createSyncRoutes } from "../routes/syncRoutes";
|
import { createSyncRoutes } from "../routes/syncRoutes.js";
|
||||||
import { createUIStateRoutes } from "../routes/uiStateRoutes";
|
import { createUIStateRoutes } from "../routes/uiStateRoutes.js";
|
||||||
import { createVoiceRoutes } from "../routes/voiceRoutes";
|
import { createVoiceRoutes } from "../routes/voiceRoutes.js";
|
||||||
import type { SharedUIStatePatch } from "../state/uiState";
|
import type { SharedUIStatePatch } from "../state/uiState.js";
|
||||||
import type { VoiceController } from "../voiceController";
|
import type { VoiceController } from "../voiceController.js";
|
||||||
import { createHealthRoutes } from "./health";
|
import { createHealthRoutes } from "./health.js";
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = path.dirname(__filename);
|
const __dirname = path.dirname(__filename);
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
import { getMetrics, uptimeGauge } from "../metrics";
|
import { getMetrics, uptimeGauge } from "../metrics.js";
|
||||||
|
|
||||||
export interface HealthRoutesOptions {
|
export interface HealthRoutesOptions {
|
||||||
adminPassword: string;
|
adminPassword: string;
|
||||||
|
|||||||
+12
-12
@@ -1,25 +1,25 @@
|
|||||||
import http from "node:http";
|
import http from "node:http";
|
||||||
import type { Client } from "discord.js-selfbot-v13";
|
import type { Client } from "discord.js-selfbot-v13";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { MediaController } from "../media/mediaController";
|
import { MediaController } from "../media/mediaController.js";
|
||||||
import { createScreenShareController } from "../media/screenShareController";
|
import { createScreenShareController } from "../media/screenShareController.js";
|
||||||
import { createBroadcaster } from "../moderation/broadcaster";
|
import { createBroadcaster } from "../moderation/broadcaster.js";
|
||||||
import {
|
import {
|
||||||
initializeMediaSettings,
|
initializeMediaSettings,
|
||||||
persistMediaSettings,
|
persistMediaSettings,
|
||||||
} from "../state/mediaSettings";
|
} from "../state/mediaSettings.js";
|
||||||
import { createSharedUIStateStore } from "../state/uiState";
|
import { createSharedUIStateStore } from "../state/uiState.js";
|
||||||
import { Streamer } from "../streaming";
|
import { Streamer } from "../streaming/index.js";
|
||||||
import type { VoiceController } from "../voiceController";
|
import type { VoiceController } from "../voiceController.js";
|
||||||
import {
|
import {
|
||||||
exposeActiveUserGlobal,
|
exposeActiveUserGlobal,
|
||||||
exposeModerationGlobals,
|
exposeModerationGlobals,
|
||||||
exposePcmBroadcastGlobal,
|
exposePcmBroadcastGlobal,
|
||||||
exposeVideoBroadcastGlobal,
|
exposeVideoBroadcastGlobal,
|
||||||
} from "../ws/broadcastGlobals";
|
} from "../ws/broadcastGlobals.js";
|
||||||
import { startWebSocketServer } from "../ws/server";
|
import { startWebSocketServer } from "../ws/server.js";
|
||||||
import { createHttpApp } from "./app";
|
import { createHttpApp } from "./app.js";
|
||||||
|
|
||||||
const serverLogger = createChildLogger("webserver");
|
const serverLogger = createChildLogger("webserver");
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@ import "./mock-crc";
|
|||||||
import "libsodium-wrappers";
|
import "libsodium-wrappers";
|
||||||
import "@snazzah/davey";
|
import "@snazzah/davey";
|
||||||
import "dotenv/config";
|
import "dotenv/config";
|
||||||
import { initializeApp } from "./app/bootstrap";
|
import { initializeApp } from "./app/bootstrap.js";
|
||||||
import { createChildLogger } from "./logger";
|
import { createChildLogger } from "./logger.js";
|
||||||
|
|
||||||
const logger = createChildLogger("bot");
|
const logger = createChildLogger("bot");
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import winston from "winston";
|
import winston from "winston";
|
||||||
import { formatLogMetadata, serializeLogValue } from "./loggerSerialization";
|
import { formatLogMetadata, serializeLogValue } from "./loggerSerialization.js";
|
||||||
|
|
||||||
const isDev = process.env.NODE_ENV !== "production";
|
const isDev = process.env.NODE_ENV !== "production";
|
||||||
const logLevel = process.env.LOG_LEVEL || (isDev ? "debug" : "info");
|
const logLevel = process.env.LOG_LEVEL || (isDev ? "debug" : "info");
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { discordPlayer } from "../player";
|
import { discordPlayer } from "../player.js";
|
||||||
import { MediaQueue } from "./mediaQueue";
|
import { MediaQueue } from "./mediaQueue.js";
|
||||||
import { resolveMediaSource } from "./mediaResolver";
|
import { resolveMediaSource } from "./mediaResolver.js";
|
||||||
import type {
|
import type {
|
||||||
MediaMode,
|
MediaMode,
|
||||||
MediaState,
|
MediaState,
|
||||||
@@ -12,8 +12,8 @@ import type {
|
|||||||
ResolvedMediaSource,
|
ResolvedMediaSource,
|
||||||
ScreenShareController,
|
ScreenShareController,
|
||||||
ScreenSharePlayback,
|
ScreenSharePlayback,
|
||||||
} from "./mediaTypes";
|
} from "./mediaTypes.js";
|
||||||
import { createMusicPlayer } from "./musicPlayer";
|
import { createMusicPlayer } from "./musicPlayer.js";
|
||||||
|
|
||||||
const logger = createChildLogger("mediaController");
|
const logger = createChildLogger("mediaController");
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import type {
|
|||||||
MediaQueueItem,
|
MediaQueueItem,
|
||||||
MediaState,
|
MediaState,
|
||||||
ResolvedMediaSource,
|
ResolvedMediaSource,
|
||||||
} from "./mediaTypes";
|
} from "./mediaTypes.js";
|
||||||
|
|
||||||
export class MediaQueue {
|
export class MediaQueue {
|
||||||
private current: MediaQueueItem | null = null;
|
private current: MediaQueueItem | null = null;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { existsSync, statSync } from "node:fs";
|
import { existsSync, statSync } from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import type { MediaMode, ResolvedMediaSource } from "./mediaTypes";
|
import type { MediaMode, ResolvedMediaSource } from "./mediaTypes.js";
|
||||||
import { createPlayDlResolver } from "./playDlResolver";
|
import { createPlayDlResolver } from "./playDlResolver.js";
|
||||||
import { createYtDlp, type YtDlpClient } from "./ytdlp";
|
import { createYtDlp, type YtDlpClient } from "./ytdlp.js";
|
||||||
|
|
||||||
type PlayDlResolver = ReturnType<typeof createPlayDlResolver>;
|
type PlayDlResolver = ReturnType<typeof createPlayDlResolver>;
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import type { ChildProcessWithoutNullStreams } from "node:child_process";
|
import type { ChildProcessWithoutNullStreams } from "node:child_process";
|
||||||
import { spawn as nodeSpawn } from "node:child_process";
|
import { spawn as nodeSpawn } from "node:child_process";
|
||||||
import { StreamType } from "@discordjs/voice";
|
import { StreamType } from "@discordjs/voice";
|
||||||
import { discordPlayer } from "../player";
|
import { discordPlayer } from "../player.js";
|
||||||
import type {
|
import type {
|
||||||
DiscordAudioPlayer,
|
DiscordAudioPlayer,
|
||||||
MusicPlayback,
|
MusicPlayback,
|
||||||
MusicPlayer,
|
MusicPlayer,
|
||||||
ResolvedMediaSource,
|
ResolvedMediaSource,
|
||||||
} from "./mediaTypes";
|
} from "./mediaTypes.js";
|
||||||
|
|
||||||
export interface MusicPlayerDependencies {
|
export interface MusicPlayerDependencies {
|
||||||
spawn?: typeof nodeSpawn;
|
spawn?: typeof nodeSpawn;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { discordPlayer } from "../player";
|
import { discordPlayer } from "../player.js";
|
||||||
import { playPreparedStream, Streamer } from "../streaming";
|
import { playPreparedStream, Streamer } from "../streaming/index.js";
|
||||||
|
|
||||||
const logger = createChildLogger("screen-share");
|
const logger = createChildLogger("screen-share");
|
||||||
|
|
||||||
import type { DiscordPlayerOwner, ScreenSharePlayback } from "./mediaTypes";
|
import type { DiscordPlayerOwner, ScreenSharePlayback } from "./mediaTypes.js";
|
||||||
import { createYtDlp } from "./ytdlp";
|
import { createYtDlp } from "./ytdlp.js";
|
||||||
|
|
||||||
export interface ScreenShareVoiceStatus {
|
export interface ScreenShareVoiceStatus {
|
||||||
connected: boolean;
|
connected: boolean;
|
||||||
@@ -105,8 +105,8 @@ export function createScreenShareController(
|
|||||||
|
|
||||||
let stopped = false;
|
let stopped = false;
|
||||||
const playFn = dependencies.useTranscoder
|
const playFn = dependencies.useTranscoder
|
||||||
? (await import("../streaming")).playTranscodedPreparedStream
|
? (await import("../streaming/index.js")).playTranscodedPreparedStream
|
||||||
: (await import("../streaming")).playPreparedStream;
|
: (await import("../streaming/index.js")).playPreparedStream;
|
||||||
|
|
||||||
const done = playFn(directUrl, session, {
|
const done = playFn(directUrl, session, {
|
||||||
fps: 30,
|
fps: 30,
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
import { NextFunction, Request, Response } from "express";
|
import { NextFunction, Request, Response } from "express";
|
||||||
import { AppError } from "./errors";
|
import { AppError } from "./errors.js";
|
||||||
import { createChildLogger } from "./logger";
|
import { createChildLogger } from "./logger.js";
|
||||||
|
|
||||||
const logger = createChildLogger("middleware");
|
const logger = createChildLogger("middleware");
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { parentPort } from "node:worker_threads";
|
import { parentPort } from "node:worker_threads";
|
||||||
import { config } from "../config.ts";
|
import { config } from "../config.js";
|
||||||
import { initializeDatabase } from "../database/drizzle.ts";
|
import { initializeDatabase } from "../database/drizzle.js";
|
||||||
import { buildConversationPromptMessages } from "./conversationContext.ts";
|
import { buildConversationPromptMessages } from "./conversationContext.js";
|
||||||
import { runModerationAnalysis } from "./llmModerationClient.ts";
|
import { runModerationAnalysis } from "./llmModerationClient.js";
|
||||||
import {
|
import {
|
||||||
getAttachmentsForMessages,
|
getAttachmentsForMessages,
|
||||||
getConversationContextBefore,
|
getConversationContextBefore,
|
||||||
updateMessageAIAnalysis,
|
updateMessageAIAnalysis,
|
||||||
} from "./messageStore.ts";
|
} from "./messageStore.js";
|
||||||
import type { MessageRecord } from "./types";
|
import type { MessageRecord } from "./types.js";
|
||||||
|
|
||||||
let dbInitialized = false;
|
let dbInitialized = false;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import { Worker } from "node:worker_threads";
|
import { Worker } from "node:worker_threads";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import {
|
import {
|
||||||
getMessageById,
|
getMessageById,
|
||||||
getPendingConversationKeys,
|
getPendingConversationKeys,
|
||||||
getPendingMessagesByConversation,
|
getPendingMessagesByConversation,
|
||||||
} from "./messageStore";
|
} from "./messageStore.js";
|
||||||
import type {
|
import type {
|
||||||
AnalysisQueueStatus,
|
AnalysisQueueStatus,
|
||||||
MessageRecord,
|
MessageRecord,
|
||||||
ModerationBroadcaster,
|
ModerationBroadcaster,
|
||||||
} from "./types";
|
} from "./types.js";
|
||||||
|
|
||||||
const logger = createChildLogger("ai-analyzer");
|
const logger = createChildLogger("ai-analyzer");
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ async function runAnalysisInWorker(
|
|||||||
): Promise<AnalysisWorkerResponse> {
|
): Promise<AnalysisWorkerResponse> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const worker = new Worker(
|
const worker = new Worker(
|
||||||
new URL("./aiAnalysisWorker.ts", import.meta.url),
|
new URL("./aiAnalysisWorker.js", import.meta.url),
|
||||||
{ execArgv: process.execArgv },
|
{ execArgv: process.execArgv },
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { uploadToTele } from "../uploader/teleUpload";
|
import { uploadToTele } from "../uploader/teleUpload.js";
|
||||||
import {
|
import {
|
||||||
updateAttachmentAsFailedUpload,
|
updateAttachmentAsFailedUpload,
|
||||||
updateAttachmentAsUploaded,
|
updateAttachmentAsUploaded,
|
||||||
updateAttachmentDiscordUrl,
|
updateAttachmentDiscordUrl,
|
||||||
} from "./messageStore";
|
} from "./messageStore.js";
|
||||||
|
|
||||||
const logger = createChildLogger("attachment-uploader");
|
const logger = createChildLogger("attachment-uploader");
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { Channel, Client, Message } from "discord.js-selfbot-v13";
|
import type { Channel, Client, Message } from "discord.js-selfbot-v13";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { captureMessage } from "./messageCapture";
|
import { captureMessage } from "./messageCapture.js";
|
||||||
|
|
||||||
const logger = createChildLogger("backlog-sync");
|
const logger = createChildLogger("backlog-sync");
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import type { WebSocket } from "ws";
|
import type { WebSocket } from "ws";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import type {
|
import type {
|
||||||
AnalysisQueueStatus,
|
AnalysisQueueStatus,
|
||||||
AttachmentRecord,
|
AttachmentRecord,
|
||||||
MediaState,
|
MediaState,
|
||||||
MessageRecord,
|
MessageRecord,
|
||||||
ModerationWsEvent,
|
ModerationWsEvent,
|
||||||
} from "./types";
|
} from "./types.js";
|
||||||
|
|
||||||
export type BroadcasterClient = Pick<WebSocket, "readyState" | "send">;
|
export type BroadcasterClient = Pick<WebSocket, "readyState" | "send">;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { MessageRecord } from "./types";
|
import type { MessageRecord } from "./types.js";
|
||||||
|
|
||||||
export interface ConversationContextInput {
|
export interface ConversationContextInput {
|
||||||
contextBefore: MessageRecord[];
|
contextBefore: MessageRecord[];
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import OpenAI from "openai";
|
import OpenAI from "openai";
|
||||||
import { config } from "../config.ts";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger.ts";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { retryWithBackoff } from "../retry.ts";
|
import { retryWithBackoff } from "../retry.js";
|
||||||
import type { AnalysisResult, AttachmentRecord, MessageRecord } from "./types";
|
import type { AnalysisResult, AttachmentRecord, MessageRecord } from "./types.js";
|
||||||
|
|
||||||
const log = createChildLogger("llmModerationClient");
|
const log = createChildLogger("llmModerationClient");
|
||||||
const openai = new OpenAI({
|
const openai = new OpenAI({
|
||||||
@@ -35,9 +35,13 @@ const openai = new OpenAI({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const headers = new Headers(response.headers ?? undefined);
|
||||||
|
headers.set("Content-Type", "application/json");
|
||||||
|
headers.delete("Content-Length");
|
||||||
|
|
||||||
return new Response(normalizedBody, {
|
return new Response(normalizedBody, {
|
||||||
status: response.status ?? 200,
|
status: response.status ?? 200,
|
||||||
headers: response.headers ?? { "Content-Type": "application/json" },
|
headers,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -592,6 +596,17 @@ Return ONLY valid JSON, no other text.`;
|
|||||||
? parseError.message
|
? parseError.message
|
||||||
: String(parseError);
|
: String(parseError);
|
||||||
lastInvalidContent = content;
|
lastInvalidContent = content;
|
||||||
|
log.warn(
|
||||||
|
{
|
||||||
|
error: lastParseError,
|
||||||
|
contentLength: content.length,
|
||||||
|
contentPreview: content.substring(0, 1000),
|
||||||
|
fullContent: content,
|
||||||
|
targetIds,
|
||||||
|
model: config.AI_LLM_MODEL,
|
||||||
|
},
|
||||||
|
"Failed to parse moderation response from LLM",
|
||||||
|
);
|
||||||
throw parseError;
|
throw parseError;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
import type { Client, Message } from "discord.js-selfbot-v13";
|
import type { Client, Message } from "discord.js-selfbot-v13";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { getModerationBroadcaster } from "../ws/broadcastGlobals";
|
import { getModerationBroadcaster } from "../ws/broadcastGlobals.js";
|
||||||
import { queueMessageAnalysis } from "./aiAnalyzer";
|
import { queueMessageAnalysis } from "./aiAnalyzer.js";
|
||||||
import { processAttachmentUpload } from "./attachmentUploader";
|
import { processAttachmentUpload } from "./attachmentUploader.js";
|
||||||
import {
|
import {
|
||||||
getDisplayContent,
|
getDisplayContent,
|
||||||
getMessageLocation,
|
getMessageLocation,
|
||||||
getMessageMetadata,
|
getMessageMetadata,
|
||||||
} from "./messageMetadata";
|
} from "./messageMetadata.js";
|
||||||
import {
|
import {
|
||||||
getMessageById,
|
getMessageById,
|
||||||
insertAttachment,
|
insertAttachment,
|
||||||
updateMessageAsDeleted,
|
updateMessageAsDeleted,
|
||||||
updateMessageAsEdited,
|
updateMessageAsEdited,
|
||||||
upsertMessageForCapture,
|
upsertMessageForCapture,
|
||||||
} from "./messageStore";
|
} from "./messageStore.js";
|
||||||
import type { AttachmentRecord, MessageRecord } from "./types";
|
import type { AttachmentRecord, MessageRecord } from "./types.js";
|
||||||
|
|
||||||
const logger = createChildLogger("message-capture");
|
const logger = createChildLogger("message-capture");
|
||||||
|
|
||||||
|
|||||||
@@ -9,16 +9,16 @@ import {
|
|||||||
type SQL,
|
type SQL,
|
||||||
sql,
|
sql,
|
||||||
} from "drizzle-orm";
|
} from "drizzle-orm";
|
||||||
import { getDatabase } from "../database/drizzle.ts";
|
import { getDatabase } from "../database/drizzle.js";
|
||||||
import { attachmentsTable, messagesTable } from "../database/schema.ts";
|
import { attachmentsTable, messagesTable } from "../database/schema.js";
|
||||||
import { createChildLogger } from "../logger.ts";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { decodeCursor, encodeCursor } from "./pagination.ts";
|
import { decodeCursor, encodeCursor } from "./pagination.js";
|
||||||
import type {
|
import type {
|
||||||
AttachmentRecord,
|
AttachmentRecord,
|
||||||
MessageQuery,
|
MessageQuery,
|
||||||
MessageRecord,
|
MessageRecord,
|
||||||
PageResult,
|
PageResult,
|
||||||
} from "./types";
|
} from "./types.js";
|
||||||
|
|
||||||
const logger = createChildLogger("message-store");
|
const logger = createChildLogger("message-store");
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ function pageMessages(
|
|||||||
return { data, nextCursor };
|
return { data, nextCursor };
|
||||||
}
|
}
|
||||||
|
|
||||||
export { decodeCursor, encodeCursor } from "./pagination.ts";
|
export { decodeCursor, encodeCursor } from "./pagination.js";
|
||||||
|
|
||||||
export async function insertMessage(message: MessageRecord): Promise<void> {
|
export async function insertMessage(message: MessageRecord): Promise<void> {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { BroadcasterClient, ModerationBroadcaster } from "./broadcaster";
|
import type { BroadcasterClient, ModerationBroadcaster } from "./broadcaster.js";
|
||||||
|
|
||||||
export type AIStatus = "pending" | "clean" | "warn" | "flagged" | "error";
|
export type AIStatus = "pending" | "clean" | "warn" | "flagged" | "error";
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { buildMuxFfmpegArgs, runFfmpeg } from "./audio/ffmpegProcess";
|
import { buildMuxFfmpegArgs, runFfmpeg } from "./audio/ffmpegProcess.js";
|
||||||
|
|
||||||
const recordingsDir = process.env.RECORDINGS_DIR ?? "./recordings";
|
const recordingsDir = process.env.RECORDINGS_DIR ?? "./recordings";
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@ import { and, asc, eq, lt, sql } from "drizzle-orm";
|
|||||||
import {
|
import {
|
||||||
getDatabase as getDrizzleDatabase,
|
getDatabase as getDrizzleDatabase,
|
||||||
initializeDatabase,
|
initializeDatabase,
|
||||||
} from "./database/drizzle";
|
} from "./database/drizzle.js";
|
||||||
import { muxerJobsTable, uiStateTable } from "./database/schema";
|
import { muxerJobsTable, uiStateTable } from "./database/schema.js";
|
||||||
import { createChildLogger } from "./logger";
|
import { createChildLogger } from "./logger.js";
|
||||||
|
|
||||||
const logger = createChildLogger("muxer-queue");
|
const logger = createChildLogger("muxer-queue");
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { buildMuxFfmpegArgs, runFfmpeg } from "./audio/ffmpegProcess";
|
import { buildMuxFfmpegArgs, runFfmpeg } from "./audio/ffmpegProcess.js";
|
||||||
|
|
||||||
const recordingsDir = process.env.RECORDINGS_DIR ?? "./recordings";
|
const recordingsDir = process.env.RECORDINGS_DIR ?? "./recordings";
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ import {
|
|||||||
import type {
|
import type {
|
||||||
DiscordPlayerOwner,
|
DiscordPlayerOwner,
|
||||||
DiscordPlayOptions,
|
DiscordPlayOptions,
|
||||||
} from "./media/mediaTypes";
|
} from "./media/mediaTypes.js";
|
||||||
|
|
||||||
export class DiscordPlayer {
|
export class DiscordPlayer {
|
||||||
private player: AudioPlayer;
|
private player: AudioPlayer;
|
||||||
|
|||||||
+11
-11
@@ -10,24 +10,24 @@ import {
|
|||||||
VoiceConnectionStatus,
|
VoiceConnectionStatus,
|
||||||
} from "@discordjs/voice";
|
} from "@discordjs/voice";
|
||||||
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
|
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
|
||||||
import { config } from "./config";
|
import { config } from "./config.js";
|
||||||
import { createChildLogger } from "./logger";
|
import { createChildLogger } from "./logger.js";
|
||||||
import { PacketFilter } from "./packetFilter";
|
import { PacketFilter } from "./packetFilter.js";
|
||||||
import { subscribeToAudioStream } from "./recorder/audioStream";
|
import { subscribeToAudioStream } from "./recorder/audioStream.js";
|
||||||
import { OpusDecoder } from "./recorder/decoder";
|
import { OpusDecoder } from "./recorder/decoder.js";
|
||||||
import {
|
import {
|
||||||
collectUserMetadata,
|
collectUserMetadata,
|
||||||
createSegmentMetadata,
|
createSegmentMetadata,
|
||||||
} from "./recorder/metadata";
|
} from "./recorder/metadata.js";
|
||||||
import { SegmentManager } from "./recorder/segment";
|
import { SegmentManager } from "./recorder/segment.js";
|
||||||
import {
|
import {
|
||||||
createRecordingSession,
|
createRecordingSession,
|
||||||
finalizeRecordingSession,
|
finalizeRecordingSession,
|
||||||
type RecordingSession,
|
type RecordingSession,
|
||||||
} from "./recorder/sessionRecording";
|
} from "./recorder/sessionRecording.js";
|
||||||
import { uploadRecordingSegment } from "./recorder/uploader";
|
import { uploadRecordingSegment } from "./recorder/uploader.js";
|
||||||
import { retryWithBackoff } from "./retry";
|
import { retryWithBackoff } from "./retry.js";
|
||||||
import type { PcmBroadcaster } from "./types";
|
import type { PcmBroadcaster } from "./types.js";
|
||||||
|
|
||||||
const logger = createChildLogger("recorder");
|
const logger = createChildLogger("recorder");
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { EndBehaviorType, type VoiceReceiver } from "@discordjs/voice";
|
import { EndBehaviorType, type VoiceReceiver } from "@discordjs/voice";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
|
|
||||||
export interface AudioStreamHandlers {
|
export interface AudioStreamHandlers {
|
||||||
onPacket: (chunk: Buffer) => void;
|
onPacket: (chunk: Buffer) => void;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { createRequire } from "node:module";
|
import { createRequire } from "node:module";
|
||||||
import * as prism from "prism-media";
|
import * as prism from "prism-media";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
const require = createRequire(import.meta.url);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
|
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import type { SegmentMetadata, SegmentState, UserMetadata } from "../types";
|
import type { SegmentMetadata, SegmentState, UserMetadata } from "../types.js";
|
||||||
|
|
||||||
export async function collectUserMetadata(
|
export async function collectUserMetadata(
|
||||||
client: Client,
|
client: Client,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import * as prism from "prism-media";
|
import * as prism from "prism-media";
|
||||||
import type { SegmentState } from "../types";
|
import type { SegmentState } from "../types.js";
|
||||||
|
|
||||||
export function buildSegmentPaths(
|
export function buildSegmentPaths(
|
||||||
userDir: string,
|
userDir: string,
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import path from "node:path";
|
|||||||
import {
|
import {
|
||||||
buildMuxFfmpegArgs,
|
buildMuxFfmpegArgs,
|
||||||
runFfmpeg as defaultRunFfmpeg,
|
runFfmpeg as defaultRunFfmpeg,
|
||||||
} from "../audio/ffmpegProcess";
|
} from "../audio/ffmpegProcess.js";
|
||||||
import type { UserMetadata } from "../types";
|
import type { UserMetadata } from "../types.js";
|
||||||
|
|
||||||
export type SessionRecordingStatus =
|
export type SessionRecordingStatus =
|
||||||
| "pending"
|
| "pending"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { config } from "../config";
|
import { config } from "../config.js";
|
||||||
import {
|
import {
|
||||||
insertVoiceRecording,
|
insertVoiceRecording,
|
||||||
updateVoiceRecordingAsFailed,
|
updateVoiceRecordingAsFailed,
|
||||||
updateVoiceRecordingAsUploaded,
|
updateVoiceRecordingAsUploaded,
|
||||||
} from "../database/voiceRecordingRepo";
|
} from "../database/voiceRecordingRepo.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { uploadToTele } from "../uploader/teleUpload";
|
import { uploadToTele } from "../uploader/teleUpload.js";
|
||||||
|
|
||||||
const logger = createChildLogger("recording-uploader");
|
const logger = createChildLogger("recording-uploader");
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
import pRetry from "p-retry";
|
import pRetry from "p-retry";
|
||||||
import type { CustomLogger } from "./logger.ts";
|
import type { CustomLogger } from "./logger.js";
|
||||||
|
|
||||||
export interface RetryOptions {
|
export interface RetryOptions {
|
||||||
retries?: number;
|
retries?: number;
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import type { Router } from "express";
|
import type { Router } from "express";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import {
|
import {
|
||||||
getAnalysisQueueStatus,
|
getAnalysisQueueStatus,
|
||||||
queueMessageAnalysis,
|
queueMessageAnalysis,
|
||||||
} from "../moderation/aiAnalyzer";
|
} from "../moderation/aiAnalyzer.js";
|
||||||
import {
|
import {
|
||||||
getMessageById,
|
getMessageById,
|
||||||
searchMessages,
|
searchMessages,
|
||||||
updateMessageAIAnalysis,
|
updateMessageAIAnalysis,
|
||||||
} from "../moderation/messageStore";
|
} from "../moderation/messageStore.js";
|
||||||
import type { MessageRecord } from "../moderation/types";
|
import type { MessageRecord } from "../moderation/types.js";
|
||||||
|
|
||||||
export function createAnalysisRoutes(): Router {
|
export function createAnalysisRoutes(): Router {
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type { NextFunction, Request, Response, Router } from "express";
|
import type { NextFunction, Request, Response, Router } from "express";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import type { MediaController } from "../media/mediaController";
|
import type { MediaController } from "../media/mediaController.js";
|
||||||
import type { MediaMode } from "../media/mediaTypes";
|
import type { MediaMode } from "../media/mediaTypes.js";
|
||||||
|
|
||||||
export type MediaRouteController = Pick<
|
export type MediaRouteController = Pick<
|
||||||
MediaController,
|
MediaController,
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import type { Router } from "express";
|
import type { Router } from "express";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import {
|
import {
|
||||||
getAttachmentsByChannel,
|
getAttachmentsByChannel,
|
||||||
getMessageById,
|
getMessageById,
|
||||||
getMessagesByChannel,
|
getMessagesByChannel,
|
||||||
listMessages,
|
listMessages,
|
||||||
listReviewMessages,
|
listReviewMessages,
|
||||||
} from "../moderation/messageStore";
|
} from "../moderation/messageStore.js";
|
||||||
import type { AIStatus, MessageQuery } from "../moderation/types";
|
import type { AIStatus, MessageQuery } from "../moderation/types.js";
|
||||||
|
|
||||||
const aiStatuses = new Set<AIStatus>([
|
const aiStatuses = new Set<AIStatus>([
|
||||||
"pending",
|
"pending",
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import {
|
|||||||
type Response,
|
type Response,
|
||||||
Router,
|
Router,
|
||||||
} from "express";
|
} from "express";
|
||||||
import { listVoiceRecordings } from "../database/voiceRecordingRepo";
|
import { listVoiceRecordings } from "../database/voiceRecordingRepo.js";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
|
|
||||||
const logger = createChildLogger("recordings-routes");
|
const logger = createChildLogger("recordings-routes");
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import type { Client } from "discord.js-selfbot-v13";
|
import type { Client } from "discord.js-selfbot-v13";
|
||||||
import type { Router } from "express";
|
import type { Router } from "express";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { syncSelectedChannelBacklog } from "../moderation/backlogSync";
|
import { syncSelectedChannelBacklog } from "../moderation/backlogSync.js";
|
||||||
|
|
||||||
const logger = createChildLogger("sync-routes");
|
const logger = createChildLogger("sync-routes");
|
||||||
const BACKLOG_SYNC_COOLDOWN_MS = 5 * 60 * 1000;
|
const BACKLOG_SYNC_COOLDOWN_MS = 5 * 60 * 1000;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import type { Router } from "express";
|
import type { Router } from "express";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import type { SharedUIState, SharedUIStatePatch } from "../state/uiState";
|
import type { SharedUIState, SharedUIStatePatch } from "../state/uiState.js";
|
||||||
|
|
||||||
export { SharedUIState, SharedUIStatePatch };
|
export { SharedUIState, SharedUIStatePatch };
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import type { NextFunction, Request, Response, Router } from "express";
|
import type { NextFunction, Request, Response, Router } from "express";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import { AppError } from "../errors";
|
import { AppError } from "../errors.js";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import type { ModerationBroadcaster } from "../moderation/broadcaster";
|
import type { ModerationBroadcaster } from "../moderation/broadcaster.js";
|
||||||
import type { VoiceController } from "../voiceController";
|
import type { VoiceController } from "../voiceController.js";
|
||||||
import type { SharedUIState } from "./uiStateRoutes";
|
import type { SharedUIState } from "./uiStateRoutes.js";
|
||||||
|
|
||||||
const logger = createChildLogger("voice-routes");
|
const logger = createChildLogger("voice-routes");
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { getPersistedValue, setPersistedValue } from "../muxer-queue";
|
import { getPersistedValue, setPersistedValue } from "../muxer-queue.js";
|
||||||
|
|
||||||
export interface MediaSettings {
|
export interface MediaSettings {
|
||||||
musicVolume: number;
|
musicVolume: number;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { getPersistedValue, setPersistedValue } from "../muxer-queue";
|
import { getPersistedValue, setPersistedValue } from "../muxer-queue.js";
|
||||||
|
|
||||||
export type ActiveTab =
|
export type ActiveTab =
|
||||||
| "voice"
|
| "voice"
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { ChildProcess, spawn } from "node:child_process";
|
import { ChildProcess, spawn } from "node:child_process";
|
||||||
import type { Readable } from "node:stream";
|
import type { Readable } from "node:stream";
|
||||||
import { PassThrough } from "node:stream";
|
import { PassThrough } from "node:stream";
|
||||||
import { createChildLogger } from "../logger";
|
import { createChildLogger } from "../logger.js";
|
||||||
import { transcoderRestartsCounter, transcoderRunningGauge } from "../metrics";
|
import { transcoderRestartsCounter, transcoderRunningGauge } from "../metrics.js";
|
||||||
import { retryWithBackoff } from "../retry";
|
import { retryWithBackoff } from "../retry.js";
|
||||||
|
|
||||||
const logger = createChildLogger("transcoder");
|
const logger = createChildLogger("transcoder");
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { CustomLogger } from "../logger";
|
import type { CustomLogger } from "../logger.js";
|
||||||
import { retryWithBackoff } from "../retry";
|
import { retryWithBackoff } from "../retry.js";
|
||||||
|
|
||||||
export interface TeleUploadResponse {
|
export interface TeleUploadResponse {
|
||||||
download_url: string;
|
download_url: string;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { getVoiceConnection, type VoiceConnection } from "@discordjs/voice";
|
import { getVoiceConnection, type VoiceConnection } from "@discordjs/voice";
|
||||||
import type { Client, Guild, VoiceChannel } from "discord.js-selfbot-v13";
|
import type { Client, Guild, VoiceChannel } from "discord.js-selfbot-v13";
|
||||||
import { AppError } from "./errors";
|
import { AppError } from "./errors.js";
|
||||||
import { createChildLogger } from "./logger";
|
import { createChildLogger } from "./logger.js";
|
||||||
import { discordPlayer } from "./player";
|
import { discordPlayer } from "./player.js";
|
||||||
import { startRecording, stopRecording } from "./recorder";
|
import { startRecording, stopRecording } from "./recorder.js";
|
||||||
|
|
||||||
const logger = createChildLogger("voice-controller");
|
const logger = createChildLogger("voice-controller");
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
export { startWebserver } from "./http/server";
|
export { startWebserver } from "./http/server.js";
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type { createChildLogger } from "../logger";
|
import type { createChildLogger } from "../logger.js";
|
||||||
import type {
|
import type {
|
||||||
BroadcasterClient,
|
BroadcasterClient,
|
||||||
ModerationBroadcaster,
|
ModerationBroadcaster,
|
||||||
} from "../moderation/types";
|
} from "../moderation/types.js";
|
||||||
|
|
||||||
type Logger = ReturnType<typeof createChildLogger>;
|
type Logger = ReturnType<typeof createChildLogger>;
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -1,9 +1,9 @@
|
|||||||
import type { Server as HttpServer } from "node:http";
|
import type { Server as HttpServer } from "node:http";
|
||||||
import { WebSocketServer } from "ws";
|
import { WebSocketServer } from "ws";
|
||||||
import type { createChildLogger } from "../logger";
|
import type { createChildLogger } from "../logger.js";
|
||||||
import type { MediaController } from "../media/mediaController";
|
import type { MediaController } from "../media/mediaController.js";
|
||||||
import type { ModerationBroadcaster } from "../moderation/types";
|
import type { ModerationBroadcaster } from "../moderation/types.js";
|
||||||
import { createVoiceAudioBridge } from "./voiceAudioBridge";
|
import { createVoiceAudioBridge } from "./voiceAudioBridge.js";
|
||||||
|
|
||||||
type Logger = ReturnType<typeof createChildLogger>;
|
type Logger = ReturnType<typeof createChildLogger>;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { AudioPlayerStatus } from "@discordjs/voice";
|
import { AudioPlayerStatus } from "@discordjs/voice";
|
||||||
import * as prism from "prism-media";
|
import * as prism from "prism-media";
|
||||||
import { rmsDb, upsample24kMonoTo48kStereo } from "../audio/pcm";
|
import { rmsDb, upsample24kMonoTo48kStereo } from "../audio/pcm.js";
|
||||||
import type { createChildLogger } from "../logger";
|
import type { createChildLogger } from "../logger.js";
|
||||||
import { discordPlayer } from "../player";
|
import { discordPlayer } from "../player.js";
|
||||||
|
|
||||||
type Logger = ReturnType<typeof createChildLogger>;
|
type Logger = ReturnType<typeof createChildLogger>;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user