chore: initial commit

This commit is contained in:
2026-10-22 17:07:08 +08:00
commit 0acef64f48
200 changed files with 35546 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
import type {Socket} from 'socket.io-client';
import {bot_config_apply_handler} from '../../utils/bot_config_apply_handler.ts';
export async function handler(socket: Socket, data: unknown, callback: unknown) {
await bot_config_apply_handler(socket, data, callback);
}
+8
View File
@@ -0,0 +1,8 @@
import type {Socket} from "socket.io-client";
import {ensure_forward} from "../../bot/forward/manager.ts";
export async function handler(socket: Socket, data: unknown, callback: unknown) {
if (typeof callback !== "function") return;
const response = await ensure_forward(socket, data);
try { callback(response); } catch { /* Main may have disconnected while the request was pending. */ }
}
+6
View File
@@ -0,0 +1,6 @@
import type {Socket} from 'socket.io-client';
import {plugin_event_handler} from '../../utils/plugin_event_handler.ts';
export async function handler(socket: Socket, data: unknown, callback: unknown) {
await plugin_event_handler('inject', socket, data, callback);
}
+30
View File
@@ -0,0 +1,30 @@
import type {Socket} from "socket.io-client";
import {bot_config} from "../../types/bot/instance/bot_runtime.ts";
import {validate_code_map} from "../../utils/validate_code_map.ts";
import {start_bot_context} from "../../bot/instance";
export async function handler(socket: Socket, data: unknown, callback: unknown) {
if (typeof callback !== "function") {
socket.emit("error", {
error: validate_code_map.web.method_not_allowed
});
return;
}
let result_code: number = validate_code_map.web.invalid_parameter;
try {
if (data && typeof data === "object" && !Array.isArray(data)
&& "node_id" in data && typeof data.node_id === "number"
&& Number.isSafeInteger(data.node_id) && data.node_id > 0) {
result_code = await start_bot_context(socket, data as bot_config & {node_id: number}, data.node_id);
}
} catch (error) {
console.error("Bot startup request failed", error);
result_code = validate_code_map.bot_context.error;
}
callback({
status: result_code === validate_code_map.bot_context.instance_connected
|| result_code === validate_code_map.bot_context.instance_connecting
|| result_code === validate_code_map.bot_context.context_created ? "success" : "error",
data: result_code
});
}
+27
View File
@@ -0,0 +1,27 @@
import type {Socket} from "socket.io-client";
import {validate_code_map} from "../../utils/validate_code_map.ts";
import {stop_bot_context} from "../../bot/instance";
export async function handler(socket: Socket, data: unknown, callback: unknown) {
if (typeof callback !== "function") {
socket.emit("error", {
error: validate_code_map.web.method_not_allowed
});
return;
}
let result_code: number = validate_code_map.web.invalid_parameter;
try {
if (data && typeof data === "object" && !Array.isArray(data)
&& "bot_id" in data && typeof data.bot_id === "number"
&& Number.isSafeInteger(data.bot_id) && data.bot_id > 0) {
result_code = await stop_bot_context(data.bot_id);
}
} catch (error) {
console.error("Bot stop request failed", error);
result_code = validate_code_map.bot_context.error;
}
callback({
status: result_code === validate_code_map.bot_context.instance_end_by_user ? "success" : "error",
data: result_code
});
}
+6
View File
@@ -0,0 +1,6 @@
import type {Socket} from 'socket.io-client';
import {plugin_event_handler} from '../../utils/plugin_event_handler.ts';
export async function handler(socket: Socket, data: unknown, callback: unknown) {
await plugin_event_handler('uninject', socket, data, callback);
}
@@ -0,0 +1,6 @@
import type {Socket} from 'socket.io-client';
import {plugin_event_handler} from '../../utils/plugin_event_handler.ts';
export async function handler(socket: Socket, data: unknown, callback: unknown) {
await plugin_event_handler('update_config', socket, data, callback);
}