Skip to content

Star-Knight #3289

@SACCC2

Description

@SACCC2

Are you using the latest version of the library?

  • I have checked and am using the latest version of the library.

What type of session are you experiencing this issue on?

Multi-device and I have set multiDevice to true in my config OR am using the --multi-device flag

What type of host account are you experiencing this issue on?

Personal account (normal)

Mode

EASY API/CLI

Current Behavior

un bot que sea divertido y bromista y responda cuando lo mencionen con cosas tontas

Expected Behavior

que suceda lo que dije

Steps To Reproduce

name: Mensaje Chistoso en Nuevo Issue
on:
issues:
types: [opened]

jobs:
add-humorous-comment:
runs-on: ubuntu-latest
steps:
- name: Comentar con humor
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Esto es un placeholder. En un bot real, llamarías a la API de GitHub
# para añadir un comentario al issue recién abierto.
# Por ejemplo, usando gh api o un script Node/Python.

    # Ejemplo muy básico de cómo usar `gh api` para comentar:
    ISSUE_NUMBER=${{ github.event.issue.number }}
    REPO_FULL_NAME=${{ github.repository }}

    HUMOR_MESSAGE="¡Gracias por abrir este issue! Espero que encontrar la solución sea más fácil que explicarle a mi abuela qué es un repositorio de GitHub. 😄"

    echo "Adding comment to issue #$ISSUE_NUMBER in $REPO_FULL_NAME"

    # Este comando usaría la CLI de GitHub para comentar.
    # Asegúrate de que `gh` esté disponible en el entorno de Actions.
    # gh api repos/$REPO_FULL_NAME/issues/$ISSUE_NUMBER/comments \
    # --method POST \
    # -F body="$HUMOR_MESSAGE"
    
    # O podrías ejecutar un script de Python/Node.js que use Octokit/PyGithub
    echo "::set-output name=comment_body::$HUMOR_MESSAGE"

create() code OR full CLI command + CONFIG

// index.js (o tu archivo principal)
const { create, Client } = require('@open-wa/wa-automate');

// Define tu objeto de configuración
const configObject = {
  sessionId: 'mi_bot_chistoso', // Un ID único para tu sesión de WhatsApp
  multiDevice: true, // ¡Importante para Multi-Device!
  authTimeout: 60, // Tiempo de espera para autenticación (en segundos)
  qrTimeout: 0, // 0 para esperar indefinidamente por el QR
  headless: true, // Ejecutar en segundo plano (sin ventana de navegador visible)
  cacheEnabled: false, // Deshabilitar cache para algunos escenarios
  restartOnCrash: start, // Reiniciar el bot si hay un crash
  logConsole: true, // Mostrar logs en la consola
  popup: true, // Mostrar la ventana emergente del navegador (si headless es false)
  // userDataDir: './data', // Directorio para almacenar los datos de la sesión (opcional)
  // executablePath: '/usr/bin/google-chrome', // Si usas Chrome y no Chromium (opcional)
  // useChrome: true, // Usar Chrome en lugar de Chromium (requiere Chrome instalado)
  autoRefresh: true, // Esto está bloqueado a 'true' y no se puede apagar.

  // Opciones adicionales para el Easy API (si lo usas dentro de tu código)
  // port: 8080,
  // host: 'localhost',
  // generateApiDocs: true, // Generar documentación de la API Swagger/OpenAPI
  // apiHost: 'http://mi-dominio.com:8080',
  // authKey: 'TU_CLAVE_SEGURA_API', // Para proteger tu API
};

function start(client) {
  console.log('Cliente de WhatsApp iniciado.');

  // Aquí iría la lógica de tu bot
  client.onMessage(async (message) => {
    console.log(`Mensaje recibido de ${message.sender.pushname}: ${message.body}`);

    if (message.body === 'chiste') {
      const chistes = [
        "¿Qué le dice una impresora a otra? ¿Esa hoja es tuya o es impresión mía?",
        "¿Cuál es el colmo de un electricista? No tener corriente con su pareja.",
        "Mi tostadora es tan inteligente que casi me hace el café. Pero no. Todavía.",
        "Programar es como resolver un rompecabezas de 1000 piezas, pero sin la imagen de referencia y con piezas que se muerden entre sí."
      ];
      await client.sendText(message.from, `¡Aquí va uno! ${chistes[Math.floor(Math.random() * chistes.length)]}`);
    } else if (message.body === 'hola') {
      await client.sendText(message.from, '¡Hola! ¿Necesitas un bot o un psicólogo? Porque con mi humor, a veces confunden. 😄');
    } else if (message.body.toLowerCase().includes('bot eres chistoso')) {
      await client.sendText(message.from, 'Dicen que soy el alma de la fiesta... si la fiesta es una línea de comandos. 😜');
    }
  });

  client.onStateChanged((state) => {
    console.log('[Estado del cliente]', state);
    // Manejar desconexiones, etc.
    if (state === 'CONFLICT' || state === 'UNLAUNCHED') client.forceRefocus();
  });
}

// Crea el cliente con el objeto de configuración
create(configObject)
  .then((client) => start(client))
  .catch((err) => console.error('Error al iniciar el cliente:', err));

DEBUG INFO

{
  "WA_VERSION": "2.3000.1024008389",
  "WA_AUTOMATE_VERSION": "4.76.0",
  "BROWSER_VERSION": "Chrome/131.0.6778.204",
  "START_TS": 1750355906924,
  "RAM_INFO": "Total: 8.22 GB | Free: 0.53 GB",
  "PPTR_VERSION": "23.11.1",
  "LATEST_VERSION": true,
  "CLI": true,
  "PATCH_HASH": "bd446",
  "LAUNCH_TIME_MS": 111451,
  "ACC_TYPE": "PERSONAL",
  "chats": 297,
  "messages": 507,
  "contacts": 3038,
  "isBiz": false,
  "isMd": true,
  "INSTANCE_ID": "3755e010-5115-403a-bbf8-72e15a539613"
}

Environment

- OS: Windows 10
- Node: 22.16.0
- npm: 10.9.2

Screenshots/Logs

No response

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions