5 Commits
2.3.4 ... 2.3.6

Author SHA1 Message Date
synt-xerror
12a9cf122f adding root support 2026-03-17 08:12:55 -03:00
synt-xerror
48e851fd05 Bump version to 2.3.5 2026-03-17 08:12:52 -03:00
synt-xerror
ae256da596 root support 2026-03-17 08:10:16 -03:00
synt-xerror
92e2ea2337 support for comments on config file 2026-03-16 22:27:07 -03:00
synt-xerror
438e674eff Bump version to 2.3.4 2026-03-16 22:27:01 -03:00
5 changed files with 65 additions and 26 deletions

1
.gitignore vendored
View File

@@ -8,3 +8,4 @@ cookies.txt
bin/ bin/
mychats.txt mychats.txt
manybot.conf manybot.conf
update.log

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "whatsapp-bot", "name": "whatsapp-bot",
"version": "2.3.3", "version": "2.3.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "whatsapp-bot", "name": "whatsapp-bot",
"version": "2.3.3", "version": "2.3.5",
"dependencies": { "dependencies": {
"node-addon-api": "^7", "node-addon-api": "^7",
"node-gyp": "^12.2.0", "node-gyp": "^12.2.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "manybot", "name": "manybot",
"version": "2.3.3", "version": "2.3.5",
"type": "module", "type": "module",
"dependencies": { "dependencies": {
"node-addon-api": "^7", "node-addon-api": "^7",

View File

@@ -16,7 +16,15 @@ logger.info(isTermux
// ── Instância ───────────────────────────────────────────────── // ── Instância ─────────────────────────────────────────────────
export const client = new Client({ export const client = new Client({
authStrategy: new LocalAuth({ clientId: CLIENT_ID }), authStrategy: new LocalAuth({ clientId: CLIENT_ID }),
puppeteer: { headless: true, ...resolvePuppeteerConfig() }, puppeteer: {
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
...(resolvePuppeteerConfig().args || [])
],
...resolvePuppeteerConfig()
},
}); });
// ── Eventos ─────────────────────────────────────────────────── // ── Eventos ───────────────────────────────────────────────────

View File

@@ -1,32 +1,62 @@
import fs from "fs"; import fs from "fs";
function parseValue(v) { function parseConf(raw) {
v = v.trim(); // Remove comentários inline e de linha inteira, preservando estrutura
const lines = raw.split("\n");
// lista: [a, b, c] const cleaned = [];
if (v.startsWith("[") && v.endsWith("]")) { let insideList = false;
return v let buffer = "";
for (let line of lines) {
// Remove comentário inline (# ...) — mas só fora de strings
line = line.replace(/#.*$/, "").trim();
if (!line) continue;
if (!insideList) {
if (line.includes("=[") && !line.includes("]")) {
// Início de lista multilinha
insideList = true;
buffer = line;
} else {
cleaned.push(line);
}
} else {
buffer += line;
if (line.includes("]")) {
// Fim da lista
insideList = false;
cleaned.push(buffer);
buffer = "";
}
}
}
// Parseia cada linha chave=valor
const result = {};
for (const line of cleaned) {
const eqIdx = line.indexOf("=");
if (eqIdx === -1) continue;
const key = line.slice(0, eqIdx).trim();
const raw = line.slice(eqIdx + 1).trim();
if (raw.startsWith("[") && raw.endsWith("]")) {
result[key] = raw
.slice(1, -1) .slice(1, -1)
.split(",") .split(",")
.map(x => x.trim()) .map(x => x.trim())
.filter(Boolean); .filter(Boolean);
} else {
result[key] = raw;
}
} }
return v; return result;
} }
const raw = fs.readFileSync("manybot.conf", "utf8"); const raw = fs.readFileSync("manybot.conf", "utf8");
const config = parseConf(raw);
const config = Object.fromEntries(
raw
.split("\n")
.map(l => l.trim())
.filter(l => l && !l.startsWith("#"))
.map(l => {
const [k, ...v] = l.split("=");
return [k.trim(), parseValue(v.join("="))];
})
);
export const CLIENT_ID = config.CLIENT_ID ?? "bot_permanente"; export const CLIENT_ID = config.CLIENT_ID ?? "bot_permanente";
export const BOT_PREFIX = config.BOT_PREFIX ?? "🤖 *ManyBot:* "; export const BOT_PREFIX = config.BOT_PREFIX ?? "🤖 *ManyBot:* ";