-
Notifications
You must be signed in to change notification settings - Fork 326
Expand file tree
/
Copy pathcontent.ts
More file actions
35 lines (29 loc) · 1.55 KB
/
content.ts
File metadata and controls
35 lines (29 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import LoggerCore from "./app/logger/core";
import MessageWriter from "./app/logger/message_writer";
import { CustomEventMessage } from "@Packages/message/custom_event_message";
import { Server } from "@Packages/message/server";
import { ScriptExecutor } from "./app/service/content/script_executor";
import type { Message } from "@Packages/message/types";
import { getEventFlag, getSyncFlag } from "@Packages/message/common";
import { ScriptRuntime } from "./app/service/content/script_runtime";
import { ScriptEnvTag } from "@Packages/message/consts";
import { isContent } from "./app/service/content/gm_api/gm_api";
import { randomMessageFlag } from "./pkg/utils/utils";
const messageFlag = process.env.SC_RANDOM_KEY!;
const syncFlag = getSyncFlag(messageFlag, randomMessageFlag(), 3);
const scriptEnvTag = isContent ? ScriptEnvTag.content : ScriptEnvTag.inject;
const msg: Message = new CustomEventMessage(`${syncFlag}${scriptEnvTag}`, false);
// 初始化日志组件
const logger = new LoggerCore({
writer: new MessageWriter(msg, "scripting/logger"),
consoleLevel: process.env.NODE_ENV === "development" ? "debug" : "none", // 只让日志在scripting环境中打印
labels: { env: "content", href: window.location.href },
});
logger.logger().debug("content start");
const server = new Server("content", msg);
const scriptExecutor = new ScriptExecutor(msg);
getEventFlag(messageFlag, (_eventFlag: string) => {
logger.logger().debug("content getEventFlag");
const runtime = new ScriptRuntime(scriptEnvTag, server, msg, scriptExecutor, messageFlag);
runtime.init();
});