3 Commits
2.3.4 ... 2.3.5

Author SHA1 Message Date
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/
mychats.txt
manybot.conf
update.log

4
package-lock.json generated
View File

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

View File

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

View File

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

View File

@@ -1,32 +1,62 @@
import fs from "fs";
function parseValue(v) {
v = v.trim();
function parseConf(raw) {
// Remove comentários inline e de linha inteira, preservando estrutura
const lines = raw.split("\n");
// lista: [a, b, c]
if (v.startsWith("[") && v.endsWith("]")) {
return v
.slice(1, -1)
.split(",")
.map(x => x.trim())
.filter(Boolean);
const cleaned = [];
let insideList = false;
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 = "";
}
}
}
return v;
// 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)
.split(",")
.map(x => x.trim())
.filter(Boolean);
} else {
result[key] = raw;
}
}
return result;
}
const raw = fs.readFileSync("manybot.conf", "utf8");
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("="))];
})
);
const config = parseConf(raw);
export const CLIENT_ID = config.CLIENT_ID ?? "bot_permanente";
export const BOT_PREFIX = config.BOT_PREFIX ?? "🤖 *ManyBot:* ";