diff --git a/setup b/setup index afff07b..3f96520 100755 --- a/setup +++ b/setup @@ -18,7 +18,7 @@ download_file() { fi echo "Baixando $url → $dest" - + if command -v curl >/dev/null 2>&1; then curl -L "$url" -o "$dest" elif command -v wget >/dev/null 2>&1; then @@ -43,8 +43,14 @@ esac echo "Plataforma detectada: $PLATFORM" # Setup npm +export PUPPETEER_SKIP_DOWNLOAD=1 run_cmd npm ci +# Instala o chromium manualmente se estiver no termux +if [[ "$PREFIX" == *"com.termux"* ]]; then + command -v chromium >/dev/null 2>&1 || pkg install -y chromium +fi + # Cria pasta bin mkdir -p bin diff --git a/src/client/whatsappClient.js b/src/client/whatsappClient.js index 49bb194..f0ec8fb 100644 --- a/src/client/whatsappClient.js +++ b/src/client/whatsappClient.js @@ -2,14 +2,32 @@ import pkg from "whatsapp-web.js"; import qrcode from "qrcode-terminal"; import { exec } from "child_process"; import { CLIENT_ID } from "../config.js"; +import os from "os"; export const { Client, LocalAuth, MessageMedia } = pkg; +// detecta termux, e usa o executável do chromium do sistema em vez do puppeteer +const isTermux = + os.platform() === "linux" && + process.env.PREFIX?.includes("termux"); + +const puppeteerConfig = isTermux + ? { + executablePath: "/data/data/com.termux/files/usr/bin/chromium", + args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage"] + } + : {}; + export const client = new Client({ authStrategy: new LocalAuth({ clientId: CLIENT_ID }), - puppeteer: { headless: true } + puppeteer: { + headless: true, + ...puppeteerConfig + } }); +console.log("isTermux:", isTermux); + client.on("qr", qr => { console.log("[BOT] Escaneie o QR Code"); qrcode.generate(qr, { small: true });