Files
blog/bot/_restore2.js
T
2026-06-01 17:57:22 +08:00

64 lines
2.6 KiB
JavaScript

const fs = require("fs");
const path = "E:/GitHub/blog/bot/index.js";
let c = fs.readFileSync(path, "utf8");
// Fix the broken start/stop/status/ip handlers (newlines got literalized)
// Remove the broken block and re-insert correctly
var brokenStart = c.indexOf("\nCMD_HANDLERS.start = async function (chatId) {");
if (brokenStart === -1) { console.log("ERR: no start"); process.exit(1); }
// Find end of ip handler (the `},` before CMD_HANDLERS.view)
var afterIp = c.indexOf("CMD_HANDLERS.view = async function", brokenStart);
if (afterIp === -1) { console.log("ERR: no view after"); process.exit(1); }
// Remove broken block
c = c.substring(0, brokenStart + 1) + c.substring(afterIp);
// Insert correct handlers
var correctHandlers = `
CMD_HANDLERS.start = async function (chatId) {
if (writeProcess && writeReady) {
var ip = getLanIP();
await sendMessage(chatId, "\\u2705 Write is running\\n\\nDesktop: http://localhost:" + WRITE_PORT + "\\nPhone: http://" + ip + ":" + WRITE_PORT);
return CMD_HANDLERS.help(chatId);
}
if (writeProcess && !writeReady) {
return sendMessage(chatId, "\\u23f3 Write is starting, please wait...");
}
var result = startWriteServer();
if (!result.started) return sendMessage(chatId, "\\u274c Failed to start");
await sendMessage(chatId, "\\u23f3 Starting Write...");
var ready = await waitForReady(WRITE_PORT);
if (ready) {
writeReady = true;
var ip = getLanIP();
await sendMessage(chatId, "\\u2705 Write is ready!\\n\\nDesktop: http://localhost:" + WRITE_PORT + "\\nPhone: http://" + ip + ":" + WRITE_PORT);
return CMD_HANDLERS.help(chatId);
}
return sendMessage(chatId, "\\u274c Start timed out, check console log.");
},
async stop(chatId) {
if (!writeProcess) return sendMessage(chatId, "\\u23f8 Write is not running.");
stopWriteServer();
return sendMessage(chatId, "\\u26a1 Write stopped.");
},
async status(chatId) {
var s = getWriteStatus();
var status = s.running ? "\\u2705 Running" : s.starting ? "\\u23f3 Starting..." : "\\u23f8 Stopped";
var lines = ["Status: " + status];
if (s.running) {
lines.push("Local: http://localhost:" + WRITE_PORT);
lines.push("Phone: http://" + s.ip + ":" + WRITE_PORT);
}
return sendMessage(chatId, lines.join("\\n"));
},
async ip(chatId) {
var ip = getLanIP();
return sendMessage(chatId, "Phone: http://" + ip + ":" + WRITE_PORT + " (" + PREFER_IFACE + ")");
},
`;
c = c.substring(0, brokenStart + 1) + correctHandlers + c.substring(brokenStart + 1);
fs.writeFileSync(path, c, "utf8");
console.log("start/stop/status/ip fixed");