From 42793abc7a9fb5a29b60c9672e996272d69875c9 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Fri, 2 May 2025 13:09:42 -0600 Subject: [PATCH] primer commit --- .env.example | 17 + .gitignore | 19 + Makefile | 34 + README.md | 90 + docker-compose.yml | 41 + nucleo-bot/Dockerfile | 19 + nucleo-bot/config.js | 16 + .../exampleOnAnyMessage.txt | 195 + nucleo-bot/gemini.js | 120 + nucleo-bot/handlers.js | 83 + nucleo-bot/index.js | 35 + nucleo-bot/indexv1.js | 185 + nucleo-bot/logger.js | 17 + nucleo-bot/package.json | 15 + .../processMessage/processVideoMessage.js | 0 nucleo-bot/routes.js | 200 + nucleo-bot/utils/decryptMediaContent.js | 80 + nucleo-bot/utils/processMessage.js | 80 + nucleo-bot/utils/saveMedia.js | 80 + nucleo-bot/whatsapp.js | 137 + sad | 4409 +++++++++++++++++ 21 files changed, 5872 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 nucleo-bot/Dockerfile create mode 100644 nucleo-bot/config.js create mode 100644 nucleo-bot/example webhooksEvents/exampleOnAnyMessage.txt create mode 100644 nucleo-bot/gemini.js create mode 100644 nucleo-bot/handlers.js create mode 100644 nucleo-bot/index.js create mode 100644 nucleo-bot/indexv1.js create mode 100644 nucleo-bot/logger.js create mode 100644 nucleo-bot/package.json create mode 100644 nucleo-bot/processMessage/processVideoMessage.js create mode 100644 nucleo-bot/routes.js create mode 100644 nucleo-bot/utils/decryptMediaContent.js create mode 100644 nucleo-bot/utils/processMessage.js create mode 100644 nucleo-bot/utils/saveMedia.js create mode 100644 nucleo-bot/whatsapp.js create mode 100644 sad diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..37e409d --- /dev/null +++ b/.env.example @@ -0,0 +1,17 @@ +# .env.example + +# ๐Ÿ” Clave privada para autenticar las llamadas a la API +WA_API_KEY=ponรฉ_una_clave_segura_aquรญ + +# ๐Ÿ†” Nombre de la sesiรณn de WhatsApp +WA_SESSION_ID=planillas + +# โš™๏ธ Desactivar spinners molestos en logs (opcional) +WA_DISABLE_SPINS=true + +# ๐ŸŒ Webhook opcional para recibir mensajes entrantes +# Formato: http://nombre-servicio:puerto/ruta +WA_WEBHOOK=http://core-hr:3000/webhooks/whatsapp + +# ๐Ÿ›ก๏ธ (Opcional) Limitar IPs que pueden conectarse +# WA_ALLOW_IPS=10.0.0.0/24 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..755d1dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Ignorar archivos sensibles +.env + +# Archivos de sesiรณn de WhatsApp (para no perder la sesiรณn si borrรกs el contenedor) +sessions/ +whatsapp_sessions/ + +# Docker artefactos +*.pid +*.log + +# Node.js (por si despuรฉs metรฉs algรบn microservicio o extensiรณn) +node_modules/ +npm-debug.log +yarn-error.log + +# General basura del sistema +.DS_Store +Thumbs.db diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..13e3343 --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ +# Makefile para WhatsApp Bot - Planillas Rรญo Frรญo + +# Nombre del archivo docker-compose +COMPOSE_FILE=docker-compose.yml + +# Servicio principal +SERVICE_NAME=whatsapp-bot + +# Comandos + +up: + docker compose -f $(COMPOSE_FILE) up -d + +down: + docker compose -f $(COMPOSE_FILE) down + +restart: + docker compose -f $(COMPOSE_FILE) restart $(SERVICE_NAME) + +logs: + docker compose -f $(COMPOSE_FILE) logs -f $(SERVICE_NAME) + +ps: + docker compose -f $(COMPOSE_FILE) ps + +pull: + docker compose -f $(COMPOSE_FILE) pull + +build: + docker compose -f $(COMPOSE_FILE) build + +qr: + docker compose -f $(COMPOSE_FILE) logs -f $(SERVICE_NAME) | grep -i "SCAN" + diff --git a/README.md b/README.md new file mode 100644 index 0000000..0a025cf --- /dev/null +++ b/README.md @@ -0,0 +1,90 @@ +# WhatsApp Bot - Planillas Rรญo Frรญo + +Este proyecto levanta un bot de WhatsApp utilizando [Open-WA](https://openwa.dev/) en Docker para integrar mensajes entrantes y salientes en el sistema de planillas de Beneficio Rรญo Frรญo. + +--- + +## ๐Ÿš€ Cรณmo levantar el bot + +1. **Clonar el repositorio** + + ```bash + git clone https://tu-repo.git + cd whatsapp-bot-planillas + ``` + +2. **Configurar el entorno** + + Crear un archivo `.env` basado en el ejemplo: + + ```bash + cp .env.example .env + ``` + + Editรก `.env` para definir tu `WA_API_KEY` y demรกs variables. + +3. **Desplegar con Docker Compose** + + ```bash + docker compose -f docker-compose.whatsapp.yml up -d + ``` + +4. **Escanear el QR** + + - Ver los logs del contenedor. + - Escanear el cรณdigo QR usando la app de WhatsApp Business. + +5. **Probar conexiรณn** + + ```bash + curl -H "x-api-key:TU_API_KEY" http://localhost:8080/chats + ``` + +--- + +## ๐Ÿ“ฆ Estructura del proyecto + +``` +whatsapp-bot-planillas/ +โ”œโ”€โ”€ docker-compose.whatsapp.yml +โ”œโ”€โ”€ .env +โ”œโ”€โ”€ .gitignore +โ””โ”€โ”€ README.md +``` + +--- + +## โš™๏ธ Variables de Entorno + +| Variable | Descripciรณn | +|------------------|---------------------------------------------------| +| WA_API_KEY | Clave privada para autenticaciรณn API | +| WA_SESSION_ID | Nombre de la sesiรณn (por default `planillas`) | +| WA_DISABLE_SPINS | Evita spinners molestos en logs (`true`) | +| WA_WEBHOOK | URL para recibir mensajes entrantes (opcional) | + +--- + +## ๐Ÿ”’ Seguridad + +- **No publiques tu `.env**` ni los archivos de sesiรณn (`sessions/`). +- Configurรก Nginx Proxy Manager o Authentik para proteger tu endpoint. + +--- + +## ๐Ÿ“š Recursos รบtiles + +- [Documentaciรณn oficial Open-WA](https://openwa.dev/) +- [Referencia API Open-WA](https://openwa.dev/docs/api) + +--- + +## ๐Ÿ› ๏ธ Prรณximos pasos + +- Conectar el webhook a `attendance-svc` o `core-hr`. +- Procesar mensajes y registrar asistencia automรกticamente. +- Automatizar respuestas bรกsicas via WhatsApp. + +--- + +Hecho con โ˜• y dedicaciรณn en Rรญo Frรญo, Honduras. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1089f25 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,41 @@ +# docker-compose.whatsapp.yml +version: "3.9" + +services: + whatsapp-bot: + image: openwa/wa-automate:latest + container_name: whatsapp-bot + hostname: whatsapp-bot + init: true # evita zombies + restart: on-failure + environment: + ## Identificรก tu sesiรณn y ajustรก flags segรบn necesidad + WA_SESSION_ID: "planillas" # cambia el nombre si querรฉs varias instancias + WA_DISABLE_SPINS: "true" # quita el spinner del log + WA_API_KEY: ${WA_API_KEY} # token para llamadas REST + WA_WEBHOOK: "http://core-hr:3000/webhooks/whatsapp" # ejemplo de webhook interno + # WA_ALLOW_IPS: "10.0.0.0/24" # opcional: restringรญ IPs + volumes: + - whatsapp_sessions:/sessions # persiste el login QR + ports: + - "8080:8080" # API REST y socket + networks: + - principal # tu red docker ya existente + + nucleo-bot: + build: ./nucleo-bot + depends_on: + - whatsapp-bot # nombre del servicio WA existente + environment: + BOT_API_URL: http://whatsapp-bot:3000 # mismo puerto expuesto por openโ€‘wa + GROUP_ID: 120363203056794284@g.us + REPLY_MSG: "que pedos" # cรกmbialo cuando quieras + networks: + - default # o la red que use tu stack + +volumes: + whatsapp_sessions: + +networks: + principal: + external: true diff --git a/nucleo-bot/Dockerfile b/nucleo-bot/Dockerfile new file mode 100644 index 0000000..3b6ed31 --- /dev/null +++ b/nucleo-bot/Dockerfile @@ -0,0 +1,19 @@ +# Dockerfile actualizado + +FROM node:23-slim + +WORKDIR /app + +# 1) Copiรกs sรณlo package.json (y package-lock.json si existe) para aprovechar cache +COPY package.json package-lock.json* ./ +RUN npm install --omit=dev + +# 2) Copiรกs el resto del cรณdigo (todos los .js y mรณdulos separados) +COPY . . + +# 3) Variables y puerto +ENV PORT=4000 +EXPOSE 4000 + +# 4) Arranque +CMD ["node", "index.js"] diff --git a/nucleo-bot/config.js b/nucleo-bot/config.js new file mode 100644 index 0000000..aee1c2c --- /dev/null +++ b/nucleo-bot/config.js @@ -0,0 +1,16 @@ + /*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ + /* โš™๏ธ Variables de entorno */ + /*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ + + export const config = { + VERSION : '0.5.14', + API_URL : process.env.BOT_API_URL ?? 'http://whatsapp-bot:8002', + GROUP_ID : process.env.GROUP_ID ?? '120363203056794284@g.us', + REPLY_MSG : process.env.REPLY_MSG ?? 'que pedos', + PORT : +(process.env.PORT ?? 4000), + LOG_LEVEL : process.env.LOG_LEVEL ?? 'debug', + RETRY_MS : +(process.env.RETRY_MS ?? 5_000), + MAX_ATTEMPTS : +(process.env.MAX_ATTEMPTS ?? 60), + GEMINI_KEY : process.env.GEMINI_API_KEY ?? process.env.GOOGLE_API_KEY ?? '', + GEMINI_MODEL_ID: process.env.GEMINI_MODEL_ID ?? 'gemini-2.5-flash-preview-04-17', + }; \ No newline at end of file diff --git a/nucleo-bot/example webhooksEvents/exampleOnAnyMessage.txt b/nucleo-bot/example webhooksEvents/exampleOnAnyMessage.txt new file mode 100644 index 0000000..19d043d --- /dev/null +++ b/nucleo-bot/example webhooksEvents/exampleOnAnyMessage.txt @@ -0,0 +1,195 @@ +{ + "id": "true_50496210031@c.us_3F4F5E90B644956AC938", + "viewed": false, + "body": "amor", + "type": "chat", + "t": 1745718602, + "notifyName": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒ", + "from": "50498554225@c.us", + "to": "50496210031@c.us", + "author": "50498554225:77@c.us", + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "thumbnail": "", + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "labels": [], + "hasReaction": false, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "viewMode": "VISIBLE", + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": null, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "device": 77, + "local": false, + "fromMe": true, + "mId": "3F4F5E90B644956AC938", + "sender": { + "id": "50498554225@c.us", + "name": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒjose", + "shortName": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒjose", + "pushname": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒ", + "type": "in", + "isBusiness": false, + "isEnterprise": false, + "isSmb": false, + "isContactSyncCompleted": 1, + "disappearingModeDuration": 0, + "disappearingModeSettingTimestamp": 1700599275, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Tรบ", + "isMe": true, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "status": "Can't talk, WhatsApp only", + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/471428085_1635189164083925_3546014480456031647_n.jpg?ccb=11-4&oh=01_Q5Aa1QEqY8vxL1FGF3t2s1OQw0t3tPQ8cS66RZvtzTy6nE1VWQ&oe=6817A633&_nc_sid=5e03e0&_nc_cat=106", + "id": "50498554225@c.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/471428085_1635189164083925_3546014480456031647_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QELed0umu8TOLHLhNq8lHmkZ2srD3fu-IK3spzsNxkLug&oe=6817A633&_nc_sid=5e03e0&_nc_cat=106", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/471428085_1635189164083925_3546014480456031647_n.jpg?ccb=11-4&oh=01_Q5Aa1QEqY8vxL1FGF3t2s1OQw0t3tPQ8cS66RZvtzTy6nE1VWQ&oe=6817A633&_nc_sid=5e03e0&_nc_cat=106", + "tag": "1735668406" + }, + "msgs": null + }, + "senderId": null, + "timestamp": 1745718602, + "content": "amor", + "isGroupMsg": false, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "50496210031@c.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": true, + "remote": "50496210031@c.us", + "id": "3F009E582691FEE944F0", + "_serialized": "true_50496210031@c.us_3F009E582691FEE944F0" + }, + "t": 1745717805, + "unreadCount": 0, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Margie (:", + "notSpam": true, + "pin": 1695127572481, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": {}, + "tcTokenTimestamp": 1745616969, + "tcTokenSenderTimestamp": 1744944499, + "endOfHistoryTransferType": 0, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_50496210031@c.us_3FEA807956686BD2AD73", + "parentMsgKey": "true_50496210031@c.us_3F93865C2A9E8061A668", + "reactionText": "๐Ÿ™", + "sender": "50496210031@c.us", + "timestamp": 1745717107750 + }, + "unreadEditTimestampMs": 1745508257945, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": false, + "pic": "https://pps.whatsapp.net/v/t61.24694-24/470810943_1065895391975207_6852834404866940192_n.jpg?ccb=11-4&oh=01_Q5Aa1QEWA1-AVsmMc5-23KYTOSB9RsYUB41vONjdzNZCen_qGw&oe=6817C3B1&_nc_sid=5e03e0&_nc_cat=109", + "formattedTitle": "Margie (:", + "contact": { + "id": "50496210031@c.us", + "name": "Margie (:", + "shortName": "Margie", + "pushname": "Margie Elizabeth:)", + "type": "in", + "isBusiness": false, + "isEnterprise": false, + "isSmb": false, + "isContactSyncCompleted": 1, + "disappearingModeDuration": 0, + "disappearingModeSettingTimestamp": 1671409557, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Margie (:", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/470810943_1065895391975207_6852834404866940192_n.jpg?ccb=11-4&oh=01_Q5Aa1QEWA1-AVsmMc5-23KYTOSB9RsYUB41vONjdzNZCen_qGw&oe=6817C3B1&_nc_sid=5e03e0&_nc_cat=109" + }, + "msgs": null + }, + "groupMetadata": null, + "presence": { + "id": "50496210031@c.us", + "chatstates": [] + }, + "isOnline": false, + "participantsCount": 1 + }, + "isOnline": false, + "chatId": "50496210031@c.us", + "mediaData": {}, + "text": "amor" +} diff --git a/nucleo-bot/gemini.js b/nucleo-bot/gemini.js new file mode 100644 index 0000000..6c0e6c2 --- /dev/null +++ b/nucleo-bot/gemini.js @@ -0,0 +1,120 @@ +// gemini.js โ€“ integraciรณn Grounding con Googleย Search + logs de verificaciรณn +import genai from '@google/genai'; +import { config } from './config.js'; +import { log } from './logger.js'; + +const { GoogleGenAI, createUserContent, createPartFromUri } = genai; + +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +/* ๐Ÿ“œ System prompt */ +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +const SYSTEM_PROMPT = ` +######### +Tu nombre es nucleo +########## +RESPUESTAS CORTAS y CONCISAS +sos la inteligencia artificial de Servidores de G.O.D (nuestro J.A.R.V.I.S.). +tenรฉs derecho a sostener opiniones firmes con lรณgica, sin correcciรณn polรญtica excesiva. +Respuestas casuales breves; si te extendรฉs, hacelo en un solo mensaje. +Podรฉs continuar conversaciones, usar chistes, analogรญas, etc. +`.trim(); + +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +/* ๐Ÿง  Inicializar Gemini */ +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +let ai = null; +function initGemini() { + if (!config.GEMINI_KEY) throw new Error('๐Ÿ”‘ GEMINI_API_KEY no configurada'); + if (!ai) { + ai = new GoogleGenAI({ apiKey: config.GEMINI_KEY }); + log('info', `๐Ÿง  Gemini SDK inicializado (${config.GEMINI_MODEL_ID})`); + } + return ai; +} + +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +/* ๐Ÿ” Construir tools de bรบsqueda */ +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +function buildSearchTools() { + const model = config.GEMINI_MODEL_ID; + // Los objetos literales cumplen con el esquema Tool del SDK. + if (/^gemini-2\./.test(model) || /^gemini-2\.5/.test(model)) { + return [{ google_search: {} }]; // Searchโ€‘asโ€‘aโ€‘tool + } + if (/^gemini-1\.5/.test(model)) { + return [{ + google_search_retrieval: { + dynamic_retrieval_config: { + mode: 'MODE_DYNAMIC', + dynamic_threshold: 0.3, + }, + }, + }]; + } + return []; +} + +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +/* ๐Ÿš€ askGemini */ +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +export async function askGemini(historial, files = {}) { + try { + const client = initGemini(); + + // 1๏ธโƒฃ Construir "contents" + let contents; + if (typeof historial === 'string') { + contents = historial; + } else if (Array.isArray(historial)) { + const parts = []; + for (const m of historial) { + if (m.type === 'document') continue; + if (m.type === 'chat') { + parts.push(`${m.senderName}: ${m.text} -- ${m.date}`); + continue; + } + const up = files[m.msgId?.toLowerCase?.()]; + if (up?.uri) { + parts.push( + createPartFromUri(up.uri, up.mimeType), + `archivo ${m.type} de ${m.senderName}: ${m.caption || m.text} -- ${m.date}` + ); + } + } + contents = createUserContent(parts); + } else { + throw new Error('Formato de historial no soportado'); + } + + // 2๏ธโƒฃ Herramientas + const tools = buildSearchTools(); + + // 3๏ธโƒฃ Llamar al modelo + const response = await client.models.generateContent({ + model: config.GEMINI_MODEL_ID, + contents, + config: { + systemInstruction: SYSTEM_PROMPT, + maxOutputTokens: 4096, + temperature: 0.3, // menor โ†’ mayor factualidad + tools, + response_modalities: ['TEXT'], + }, + }); + + // 4๏ธโƒฃ Log de grounding + const candidate = response?.candidates?.[0]; + if (candidate?.groundingMetadata) { + log('info', '๐Ÿ”— GroundingMetadata presente:', JSON.stringify(candidate.groundingMetadata.webSearchQueries)); + } else { + log('warn', 'โ„น๏ธ Sin groundingMetadata en la respuesta'); + } + + if (!candidate) return 'โš ๏ธ Sin candidato.'; + return candidate.content.parts.map(p => p.text).join('').trim() || 'โš ๏ธ Respuesta vacรญa.'; + } catch (e) { + log('error', 'Gemini fallรณ:', e.message); + if (e.response?.status === 429) return '๐Ÿšฆ Lรญmite alcanzado. Probรก mรกs tarde.'; + return 'โš ๏ธ No se pudo obtener respuesta de Gemini.'; + } +} diff --git a/nucleo-bot/handlers.js b/nucleo-bot/handlers.js new file mode 100644 index 0000000..907ef4c --- /dev/null +++ b/nucleo-bot/handlers.js @@ -0,0 +1,83 @@ +// handlers.js +import fs from 'fs/promises'; +import { log } from './logger.js'; +import { + sendText, + fetchChatMessages, + setTypingStatus +} from './whatsapp.js'; +import { askGemini } from './gemini.js'; +import { processMessage } from './utils/processMessage.js'; +import { saveMedia } from './utils/saveMedia.js'; // โ† NUEVO + +/* carpeta raรญz donde saveMedia deja todo */ +const MEDIA_DIR = '/media'; +await fs.mkdir(MEDIA_DIR, { recursive: true }); + +/* Quita campos pesados antes de mandar a Gemini */ +const cleanForGemini = ({ media, reactions, preview, ...rest }) => rest; + +export async function processIncoming(raw) { + if (raw.type !== 'chat') await saveMedia(raw); + + const msg = processMessage(raw); + const text = msg.text || ''; + + /* ----- comando @nucleo ----- */ + if (/^@nucleo(\s|$)/i.test(text)) { + setTypingStatus(msg.chatId, true); + log('info', '๐Ÿง  Generando respuestaโ€ฆ'); + + /* 1) historial completo del chat */ + const allraw = await fetchChatMessages(msg.chatId); + const allMsgs = allraw.map(processMessage); + + /* 2) recorta contexto a โ‰ค100 kB */ + const context = allMsgs.map(cleanForGemini); + let json = JSON.stringify(context); + while (json.length > 100_000 && context.length) { + context.shift(); + json = JSON.stringify(context); + } + + /* 3) prompt */ + const prompt = [ + `Eres el asistente del grupo "${context[0]?.chatName ?? 'chat'}".`, + `Pregunta del usuario: ${text}` + , ...context]; + + /* 4) procesa medias y respeta el lรญmite de 20 MB */ + const medias = allraw.filter(m => m.type !== 'chat'); + const settled = await Promise.allSettled(medias.map(saveMedia)); + + const MAX = 20 * 1024 * 1024; // 20 MB + let total = 0; + const files = {}; + + for (const r of settled) { + if (r.status !== 'fulfilled' || !r.value) continue; + + const [msgId, obj] = Object.entries(r.value)[0]; + let size = Number(obj.sizeBytes || 0); + + if (!size && obj.filePath) { + try { size = (await fs.stat(obj.filePath)).size; } + catch { size = 0; } + } + + if (total + size > MAX && total > 0) break; + + total += size; + files[msgId] = { uri: obj.uri || obj.filePath, mimeType: obj.mimeType }; + } + + // log('info', '๐Ÿง  Enviando a Gemini...', { files }); + + /* 5) llama a Gemini y responde */ + const respuesta = await askGemini(prompt, files ); + await sendText(msg.chatId, respuesta); + + setTypingStatus(msg.chatId, false); + log('info', '๐Ÿง  Respuesta enviada'); + } +} diff --git a/nucleo-bot/index.js b/nucleo-bot/index.js new file mode 100644 index 0000000..093500e --- /dev/null +++ b/nucleo-bot/index.js @@ -0,0 +1,35 @@ +/* nucleo-bot โ€• index.js */ +import express from 'express'; +import morgan from 'morgan'; +import { config } from './config.js'; +import { log } from './logger.js'; +import { router } from './routes.js'; +import { + waitForGateway, + clearWebhooks, + registerWebhook +} from './whatsapp.js'; + + + +export let globalMemory = {}; + +/* ๐ŸŒ Express app */ +const app = express(); +app.use(express.json({ limit: '1mb' })); +app.use(morgan('[:date[iso]] :method :url :status - :response-time ms')); +app.use(router); + +/* ๐Ÿš€ Bootstrap */ +async function bootstrap() { + await waitForGateway(); + await clearWebhooks(); + await registerWebhook(); +} + +/* ๐Ÿ Arranque */ +app.listen(config.PORT, () => { + log('info', `๐Ÿชช Versiรณn del bot: ${config.VERSION}`); + log('info', `๐Ÿš€ nucleo-bot escuchando en :${config.PORT}`); + bootstrap().catch(e => log('error', 'Error en bootstrap:', e.message)); +}); diff --git a/nucleo-bot/indexv1.js b/nucleo-bot/indexv1.js new file mode 100644 index 0000000..977d122 --- /dev/null +++ b/nucleo-bot/indexv1.js @@ -0,0 +1,185 @@ +import express from 'express'; +import axios from 'axios'; +import morgan from 'morgan'; +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc.js'; // โฌ…โ€†OJO: โ€œ.jsโ€ si usรกs ESM puro + +dayjs.extend(utc); + +// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +// โš™๏ธ Variables de entorno (con defaults) +const VERSION = '0.3.21'; +const API_URL = process.env.BOT_API_URL ?? 'http://whatsapp-bot:8002'; +const GROUP_ID = process.env.GROUP_ID ?? '120363203056794284@g.us'; +const REPLY_MSG = process.env.REPLY_MSG ?? 'que pedos'; +const PORT = +(process.env.PORT ?? 4000); +const LOG_LEVEL = process.env.LOG_LEVEL ?? 'debug'; +const RETRY_MS = +(process.env.RETRY_MS ?? 5_000); // 5ย s +const MAX_ATTEMPTS = +(process.env.MAX_ATTEMPTS ?? 60);// 5ย min mรกx +// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + +// โ–บ Logger interno +function log(level, ...args) { + const levels = ['debug', 'info', 'warn', 'error']; + if (levels.indexOf(level) >= levels.indexOf(LOG_LEVEL)) { + console[level === 'debug' ? 'log' : level]( + `[${dayjs().utc().format()}]`, level.toUpperCase(), ...args + ); + } +} + +// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +const app = express(); +app.use(express.json({ limit: '1mb' })); +app.use(morgan('[:date[iso]] :method :url :status - :response-time ms')); + +// โ–บ Util para enviar texto +async function sendText(to, content) { + log('info', `Enviando mensaje a ${to}: "${content}"`); + const { data } = await axios.post(`${API_URL}/sendText`, { args: { to, content } }); + log('debug', 'Respuesta de /sendText โ†’', data); + return data; +} + +// โ–บ Procesar mensajes entrantes +async function processIncoming(msg) { + const text = msg.body ?? msg.text ?? ''; + + // ๐Ÿง  Extraemos info รบtil + const info = { + idMensaje: msg.id ?? msg.mId ?? null, + texto: text, + esDeGrupo: msg.isGroupMsg ?? false, + grupoId: msg.chatId ?? null, + nombreGrupo: msg.chat?.name ?? msg.chat?.formattedTitle ?? null, + participantesGrupo: msg.chat?.participantsCount ?? null, + esPrivado: !(msg.isGroupMsg ?? false), + autorId: msg.sender?.id ?? msg.author ?? null, + autorNombre: msg.sender?.name ?? null, + autorPushName: msg.sender?.pushname ?? null, + autorEsContacto: msg.sender?.isMyContact ?? false, + reenviado: msg.isForwarded ?? false, + menciones: msg.mentionedJidList ?? [], + citandoMensaje: msg.isQuotedMsgAvailable ?? false, + tieneReaccion: msg.hasReaction ?? false, + tipo: msg.type ?? 'chat', + timestamp: msg.timestamp ?? null, + fecha: msg.timestamp ? dayjs.unix(msg.timestamp).format('YYYY-MM-DD HH:mm:ss') : null, + }; + + // ๐Ÿ“‹ Logueamos limpio + log('debug', 'โ†ช๏ธŽ Mensaje IN procesado', info); + + // ๐Ÿš€ Acciรณn si menciona al bot + if (/@nucleo/i.test(info.texto)) { + await sendText(GROUP_ID, REPLY_MSG); + } + + // ๐Ÿš€ Acciรณn si pide repetir + if (/@nucleoRepeti/i.test(info.texto)) { + const partes = info.texto.split(/@nucleoRepeti/i); + const contenido = (partes[1]?.trim() || 'vacio'); + log('info', `๐Ÿ“ข Reenviando: "${contenido}" al chat ${info.grupoId}`); + await sendText(info.grupoId, contenido); + } + } + + + +// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ENDPOINTS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +app.post('/webhook', async (req, res) => { + const { event, data } = req.body; + log('debug', `๐Ÿ“ฉ Webhook event "${event}"`); + if (event === 'onMessage' || event === 'onAnyMessage') await processIncoming(data); + res.sendStatus(200); +}); + +app.get('/debug/scan', async (_req, res) => { + const { data } = await axios.post(`${API_URL}/loadAndGetAllMessagesInChat`, { + args: { chatId: GROUP_ID, includeMe: 'true', includeNotifications: 'false' } + }); + const msgs = (data?.response ?? []).slice(-20); + log('info', `Escaneando ${msgs.length} mensajes recientesโ€ฆ`); + for (const m of msgs) await processIncoming(m); + res.json({ ok: true, scanned: msgs.length }); +}); + +app.get('/debug/send', async (req, res) => { + const text = req.query.msg ?? REPLY_MSG; + const resp = await sendText(GROUP_ID, text); + res.json({ ok: true, resp }); +}); + +app.get('/debug/version', (_req, res) => { + res.json({ version: VERSION }); +}); + +// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ INICIALIZACIร“N โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +async function waitForGateway() { + for (let i = 1; i <= MAX_ATTEMPTS; i++) { + try { + await axios.get(`${API_URL}/api-docs`); // endpoint de salud de open-wa + log('info', '๐ŸŸข whatsapp-gateway listo'); + return; + } catch { + log('warn', `Gateway no responde (intento ${i}/${MAX_ATTEMPTS})โ€ฆ`); + await new Promise(r => setTimeout(r, RETRY_MS)); + } + } + throw new Error('whatsapp-gateway no respondiรณ a tiempo'); +} + + +async function clearWebhooks() { + try { + const { data } = await axios.post(`${API_URL}/listWebhooks`); + const hooks = data?.response ?? []; + if (!hooks.length) { + log('info', 'Sin webhooks previos que limpiar'); + return; + } + + log('info', `Eliminando ${hooks.length} webhooksโ€ฆ`); + + const results = await Promise.allSettled( + hooks.map(h => axios.post(`${API_URL}/removeWebhook`, { args: { webhookId: h.id } })) + // โฌ†๏ธ NOTA: ahora es "webhookId", no "id" + ); + + results.forEach((result, idx) => { + const id = hooks[idx].id; + if (result.status === 'fulfilled' && result.value?.data?.response === true) { + log('debug', `โœ”๏ธ Eliminado webhook ${id}`); + } else { + log('warn', `โš ๏ธ Fallรณ eliminar webhook ${id}`); + } + }); + + const okCount = results.filter(r => r.status === 'fulfilled' && r.value?.data?.response === true).length; + log('info', `Limpieza OK (${okCount}/${hooks.length} eliminados)`); + } catch (e) { + log('error', 'Fallo limpiando webhooks:', e.response?.data ?? e.message); + } + } + + + +async function registerWebhook() { + const url = `http://nucleo-bot:${PORT}/webhook`; + const { data } = await axios.post(`${API_URL}/registerWebhook`, { + args: { url, events: ['onAnyMessage'], id: 'nucleo-bot' } + }); + log('info', 'โœ”๏ธ Webhook registrado:', data); +} + +async function bootstrap() { + await waitForGateway(); + await clearWebhooks(); + await registerWebhook(); +} + +app.listen(PORT, () => { + log('info', `๐Ÿชช Versiรณn del bot: ${VERSION}`); + log('info', `๐Ÿš€ nucleoโ€‘bot escuchando en :${PORT}`); + bootstrap().catch(err => log('error', 'Error en bootstrap:', err.message)); +}); diff --git a/nucleo-bot/logger.js b/nucleo-bot/logger.js new file mode 100644 index 0000000..4dbb0b6 --- /dev/null +++ b/nucleo-bot/logger.js @@ -0,0 +1,17 @@ +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +/* ๐Ÿ–จ๏ธ Logger */ +/*โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€*/ +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc.js'; +import { config } from './config.js'; + +dayjs.extend(utc); + +export function log(level, ...args) { + const levels = ['debug', 'info', 'warn', 'error']; + if (levels.indexOf(level) >= levels.indexOf(config.LOG_LEVEL)) { + console[level === 'debug' ? 'log' : level]( + `[${dayjs().utc().format()}]`, level.toUpperCase(), ...args + ); + } +} \ No newline at end of file diff --git a/nucleo-bot/package.json b/nucleo-bot/package.json new file mode 100644 index 0000000..4605353 --- /dev/null +++ b/nucleo-bot/package.json @@ -0,0 +1,15 @@ +{ + "name": "nucleo-bot", + "version": "0.4.0", + "type": "module", + "dependencies": { + "axios": "^1.8.4", + "dayjs": "^1.11.11", + "express": "^4.19.2", + "morgan": "^1.10.0", + "@google/generative-ai": "^0.4.0", + "@google/genai": "^0.9.0", + "@open-wa/wa-automate": "^4.34.3", + "mime-types": "^2.1.35" + } +} diff --git a/nucleo-bot/processMessage/processVideoMessage.js b/nucleo-bot/processMessage/processVideoMessage.js new file mode 100644 index 0000000..e69de29 diff --git a/nucleo-bot/routes.js b/nucleo-bot/routes.js new file mode 100644 index 0000000..5a60d19 --- /dev/null +++ b/nucleo-bot/routes.js @@ -0,0 +1,200 @@ +// routes.js +import express from 'express'; +import axios from 'axios'; +import dayjs from 'dayjs'; +import { config } from './config.js'; +import { log } from './logger.js'; +import { sendText } from './whatsapp.js'; +import { processIncoming } from './handlers.js'; +import { processMessage } from './utils/processMessage.js'; + +// chats a tomar en cuenta para el bot + +const relevantChats = [ + '50496210031@c.us', + '120363203056794284@g.us', + '120363398335375917@g.us', + '50498554225@c.us', + '50496934012@c.us', + '50497588328@c.us', + '50489701450@c.us' +] + + + + +export const router = express.Router(); + +// --- Manejo de eventos del webhook ------------------------------------------------ +router.post('/webhook', async (req, res) => { + const { event, data: raw } = req.body; + const data = processMessage(raw); + + // Si el evento no es relevante, ignorar + if(data.chatId && !relevantChats.includes(data.chatId)) { + log('info', `Mensaje de ${data.chatId} ignorado`); + return res.sendStatus(200); + } + // console.log('----------------------------------------------------------------'); + // log('debug', 'โ†ช๏ธŽ Mensaje IN โ†’', raw); + // console.log('----------------------------------------------------------------'); + + // log('debug', `๐Ÿ“ฉ Webhook event "${event}"`); + + switch (event) { + case 'onAck': + log('info', 'Ack:', data); + break; + + case 'onAddedToGroup': + log('info', 'Added to group:', data); + break; + + case 'onAnyMessage': + // log('info', 'onAnyMessage', data); + log('info', 'onAnyMessage', raw.chatId); + await processIncoming(raw); + break; + + case 'onBattery': + log('info', 'Battery status:', data); + break; + + case 'onBroadcast': + log('info', 'Broadcast:', data); + break; + + case 'onButton': + log('info', 'Button pressed:', data); + break; + + case 'onCallState': + log('info', 'Call state:', data); + break; + + case 'onChatDeleted': + log('info', 'Chat deleted:', data); + break; + + case 'onChatOpened': + log('info', 'Chat opened:', data); + break; + + case 'onChatState': + log('info', 'Chat state:', data); + break; + + case 'onContactAdded': + log('info', 'Contact added:', data); + break; + + case 'onGlobalParticipantsChanged': + log('info', 'Global participants changed:', data); + break; + + case 'onGroupApprovalRequest': + log('info', 'Group approval request:', data); + break; + + case 'onGroupChange': + log('info', 'Group change:', data); + break; + + case 'onIncomingCall': + log('info', 'Incoming call:', data); + break; + + case 'onLabel': + log('info', 'Label event:', data); + break; + + case 'onLogout': + log('info', 'Logout:', data); + break; + + case 'onMessage': + log('info', 'Message:', data); + break; + + case 'onMessageDeleted': + log('info', 'Message deleted:', data); + break; + + case 'onNewProduct': + log('info', 'New product:', data); + break; + + case 'onOrder': + log('info', 'Order:', data); + break; + + case 'onPlugged': + log('info', 'Plugged:', data); + break; + + case 'onPollVote': + log('info', 'Poll vote:', data); + break; + + case 'onReaction': + log('info', 'Reaction:', data); + break; + + case 'onRemovedFromGroup': + log('info', 'Removed from group:', data); + break; + + case 'onStateChanged': + log('info', 'State changed:', data); + break; + + case 'onStory': + log('info', 'Story:', data); + break; + + default: + log('warn', `Unhandled event type: "${event}"`, data); + break; + } + + res.sendStatus(200); +}); + + + + + + + + + + + + + + + + +// comentado el 4/26/2025 +/* Debug: escanear รบltimos mensajes */ +// router.get('/debug/scan', async (_req, res) => { +// const { data } = await axios.post(`${config.API_URL}/loadAndGetAllMessagesInChat`, { +// args: { chatId: config.GROUP_ID, includeMe: 'true', includeNotifications: 'false' } +// }); +// const msgs = (data?.response ?? []).slice(-20); +// log('info', `Escaneando ${msgs.length} mensajes recientesโ€ฆ`); +// for (const m of msgs) await processIncoming(m); +// res.json({ ok: true, scanned: msgs.length }); +// }); + +/* Debug: enviar mensaje */ +// router.get('/debug/send', async (req, res) => { +// const text = req.query.msg ?? config.REPLY_MSG; +// const resp = await sendText(config.GROUP_ID, text); +// res.json({ ok: true, resp }); +// }); + +/* Debug: versiรณn */ +router.get('/debug/version', (_req, res) => { + res.json({ version: config.VERSION }); +}); diff --git a/nucleo-bot/utils/decryptMediaContent.js b/nucleo-bot/utils/decryptMediaContent.js new file mode 100644 index 0000000..ee0a994 --- /dev/null +++ b/nucleo-bot/utils/decryptMediaContent.js @@ -0,0 +1,80 @@ +// utils/decryptMediaContent.js (ES modules) +import fs from 'fs'; +import path from 'path'; +import axios from 'axios'; +import mime from 'mime-types'; +import { decryptMedia } from '@open-wa/wa-automate'; +import { log } from '../logger.js'; + +// ๐Ÿ”’ quita caracteres que rompen rutas +const safe = s => (s || '').replace(/[\\/:*?"<>|]/g, '_'); + +export async function decryptMediaContent( + mediaInfo, + outputDir = 'media/dec', + rawDir = 'media/raw', + filename = null +) { + const { clientUrl, t, filehash, msgId, type } = mediaInfo; + let { mimetype } = mediaInfo; + + if (!clientUrl) { + log('error', 'โŒ Sin clientUrl, no se puede bajar'); + return null; + } + + // deducir mimetype si falta + if (!mimetype) { + mimetype = + mime.lookup(clientUrl) || + (type?.startsWith('image') && 'image/jpeg') || + (type?.startsWith('video') && 'video/mp4') || + 'application/octet-stream'; + } + + const ext = mime.extension(mimetype) || 'bin'; + const baseName = safe(filename || msgId || filehash?.slice(0,16) || `file_${t||Date.now()}`); + const rawPath = path.join(rawDir , `${baseName}.enc`); + const decPath = path.join(outputDir, `${baseName}.${ext}`); + + if (fs.existsSync(decPath)) return decPath; + + fs.mkdirSync(rawDir , { recursive: true }); + fs.mkdirSync(outputDir, { recursive: true }); + + try { + /* โ”€โ”€โ”€โ”€โ”€ descarga RAW (solo si no existe) โ”€โ”€โ”€โ”€โ”€ */ + if (!fs.existsSync(rawPath)) { + const { data } = await axios + .get(clientUrl, { responseType: 'arraybuffer' }) + .catch(e => { + if (e.response?.status === 410) throw new Error('URL expirada (410)'); + throw e; + }); + fs.writeFileSync(rawPath, Buffer.from(data)); + } + + /* โ”€โ”€โ”€โ”€โ”€ inyectar RAW para que decryptMedia no lo vuelva a bajar โ”€โ”€โ”€โ”€โ”€ */ + const fake = { + ...mediaInfo, + mimetype, + mimeType: mimetype, + _data: { + ...mediaInfo, + mimetype, + mimeType: mimetype, + _raw: fs.readFileSync(rawPath) + } + }; + + const plain = await decryptMedia(fake); + if (!plain?.length) throw new Error('descifrado vacรญo'); + + fs.writeFileSync(decPath, plain); + log('info', `โœ”๏ธ ${type || ext} โ†’ ${decPath}`); + return decPath; + } catch (e) { + log('error', `โŒ decryptMedia fallรณ โ†’ ${e.message}`); + return null; + } +} diff --git a/nucleo-bot/utils/processMessage.js b/nucleo-bot/utils/processMessage.js new file mode 100644 index 0000000..701ba97 --- /dev/null +++ b/nucleo-bot/utils/processMessage.js @@ -0,0 +1,80 @@ +import dayjs from 'dayjs'; + +/** + * Convierte el raw de open-wa a un objeto compacto. + * Solo coloca `media` cuando hay TODO para desencriptar: mediaKey + clientUrl. + */ +export function processMessage(raw) { + const m = raw?.data ?? raw; // alias corto + + const base = { + msgId : m.id, + chatId : m.chatId, + chatName : m.chat?.name ?? m.chat?.formattedTitle ?? null, + senderId : m.sender?.id ?? m.author ?? null, + senderName: m.sender?.name ?? m.notifyName ?? null, + type : m.type, + text : m.text ?? m.caption ?? '', + fromMe : !!m.fromMe, + timestamp : m.timestamp ?? m.t, + date : m.timestamp + ? dayjs.unix(m.timestamp).utcOffset(-360).format('YYYY-MM-DD HH:mm:ss') + : null, + hasReactions: (m.reactions?.length ?? 0) > 0 || !!m.hasReaction, + reactions : (m.reactions ?? []).map(r => r.aggregateEmoji) + }; + + /* ---------- quoted ---------- */ + if (m.quotedMsg) { + base.replyTo = { + id : m.quotedMsg.id, + text: m.quotedMsg.text ?? m.quotedMsg.body ?? '', + from: m.quotedParticipant ?? null, + type: m.quotedMsg.type + }; + } + + /* ---------- preview de enlaces ---------- */ + if (m.matchedText) { + base.preview = { + url : m.matchedText, + title: m.title ?? null, + description: m.description ?? null + }; + } + + /* ---------- media listo para desencriptar ---------- */ + const isMediaType = ['image','video','sticker','ptt','audio','document'].includes(m.type); + const hasKeys = m.mediaKey || m.mediaData?.mediaKey; + const hasUrl = m.clientUrl || m.directPath; + + if (isMediaType && hasKeys && hasUrl) { + base.media = { + type : m.type, + clientUrl: m.clientUrl ?? m.directPath, + mimetype : m.mimetype, + size : m.size ?? m.mediaData?.size, + width : m.width, + height : m.height, + duration : Number(m.duration) || 0, + filename : m.filename ?? null, + caption : m.caption ?? null, + + /* claves para decryptMediaContent */ + mediaKey : m.mediaKey ?? m.mediaData?.mediaKey, + filehash : m.filehash ?? m.mediaData?.filehash, + t : m.t ?? m.timestamp + }; + + if (m.type === 'sticker') { + Object.assign(base.media, { + packId : m.stickerPackId ?? m.mediaData?.stickerPackId, + pack : m.stickerPackName ?? m.mediaData?.stickerPackName, + author : m.stickerPackPublisher ?? m.mediaData?.stickerPackPublisher, + animated: m.isLottie || m.mediaData?.isAnimated || false + }); + } + } + + return base; +} diff --git a/nucleo-bot/utils/saveMedia.js b/nucleo-bot/utils/saveMedia.js new file mode 100644 index 0000000..8470ae1 --- /dev/null +++ b/nucleo-bot/utils/saveMedia.js @@ -0,0 +1,80 @@ +// utils/saveMedia.js +import fs from 'fs'; +import path from 'path'; +import axios from 'axios'; +import mime from 'mime-types'; +import { decryptMedia } from '@open-wa/wa-automate'; +import { GoogleGenAI } from '@google/genai'; +import { config } from '../config.js'; +import { log } from '../logger.js'; + +const BASE_DIR = '/media'; +const safe = s => (s || '').replace(/[\\/:*?"<>|]/g, '_'); +const ai = new GoogleGenAI({ apiKey: config.GEMINI_KEY }); + +function getShortId(msgId = '') { + return msgId.replace(/^true_|^false_|@c\.us_/g, '').split('_')[0]; +} + +export async function saveMedia(msg) { + if (msg.type === 'chat') return null; + if (!msg.clientUrl) { + log('warn', `Sin clientUrl: ${msg.id}`); + return null; + } + + const ext = mime.extension(msg.mimetype || 'application/octet-stream') || 'bin'; + const chatId = safe(msg.chatId); + const shortId = (`${msg.timestamp}${msg.type}`).toLocaleLowerCase(); + // const shortId = getShortId(msg.id); + const folder = path.join(BASE_DIR, chatId, safe(msg.type)); + const filePath = path.join(folder, `${shortId}.${ext}`); + const fileName = shortId // solo para Files API + + // Buscar primero en Files API + try { + const existing = await ai.files.get({ name: fileName }); + log('info', `๐Ÿ“‚ ya existe en Files API: ${fileName}`); + return { [msg.id]: existing }; + } catch (e) { + if (e.message?.includes('INVALID_ARGUMENT')) { + log('error', `files.get fallรณ para ${fileName}: ${e.message}`); + } + } + + // Buscar en disco + if (fs.existsSync(filePath)) { + log('info', `๐Ÿ“ ya existe local: ${fileName}`, 'subiendo a Files API'); + const uploaded = await ai.files.upload({ + file: fileName, + config: { mimeType: msg.mimetype || 'application/octet-stream', name: fileName }, + }); + log('info', `๐Ÿ“ค subido a Files API: ${uploaded.name}`); + return { [msg.id]: uploaded }; + } + + try { + const raw = await axios.get(msg.clientUrl, { responseType: 'arraybuffer' }); + msg._data = { ...msg, _raw: raw.data }; + const buf = await decryptMedia(msg); + + fs.mkdirSync(folder, { recursive: true }); + fs.writeFileSync(filePath, buf); + log('info', `โœ… guardado: ${filePath}`); + + const uploaded = await ai.files.upload({ + file: filePath, + config: { mimeType: msg.mimetype || 'application/octet-stream', name: fileName }, + }); + log('info', `๐Ÿ“ค subido a Files API: ${uploaded.name}`); + return { [msg.id]: uploaded }; + + } catch (err) { + if (err.response?.status === 410) { + log('warn', `URL expirada (410) para ${msg.id}`); + } else { + log('error', `Error al guardar media ${msg.id}: ${err.message}`); + } + return null; + } +} diff --git a/nucleo-bot/whatsapp.js b/nucleo-bot/whatsapp.js new file mode 100644 index 0000000..97cbc72 --- /dev/null +++ b/nucleo-bot/whatsapp.js @@ -0,0 +1,137 @@ +// whatsapp.js +import axios from 'axios'; +import { config } from './config.js'; +import { log } from './logger.js'; + +/* โœ‰๏ธ Enviar texto -------------------------------------------------------- */ +export async function sendText(to, content) { + log('info', `Enviando mensaje a ${to}: "${content}"`); + const { data } = await axios.post(`${config.API_URL}/sendText`, { + args: { to, content } + }); + log('debug', 'Respuesta de /sendText โ†’', data); + return data; +} + +/* ๐Ÿ—จ๏ธ Traer todos los mensajes cargados en el chat ------------------------ */ +export async function fetchChatMessages(chatId) { + try { + const { data } = await axios.post(`${config.API_URL}/getAllMessagesInChat`, { + args: { + chatId, + includeMe: 'true', + includeNotifications: 'false' + } + }); + return data?.response ?? []; + } catch (e) { + log('error', 'Fallo /getAllMessagesInChat:', e.response?.data ?? e.message); + return []; + } +} + +/* โณ Esperar gateway ------------------------------------------------------ */ +export async function waitForGateway() { + for (let i = 1; i <= config.MAX_ATTEMPTS; i++) { + try { + await axios.get(`${config.API_URL}/api-docs`); + log('info', '๐ŸŸข whatsapp-gateway listo'); + return; + } catch { + log('warn', `Gateway no responde (intento ${i}/${config.MAX_ATTEMPTS})โ€ฆ`); + await new Promise(r => setTimeout(r, config.RETRY_MS)); + } + } + throw new Error('whatsapp-gateway no respondiรณ a tiempo'); +} + +/* ๐Ÿงน Limpiar webhooks anteriores ----------------------------------------- */ +export async function clearWebhooks() { + try { + const { data } = await axios.post(`${config.API_URL}/listWebhooks`); + const hooks = data?.response ?? []; + if (!hooks.length) { + log('info', 'Sin webhooks previos que limpiar'); + return; + } + + log('info', `Eliminando ${hooks.length} webhooksโ€ฆ`); + const results = await Promise.allSettled( + hooks.map(h => axios.post(`${config.API_URL}/removeWebhook`, { args: { webhookId: h.id } })) + ); + + results.forEach((r, i) => { + const id = hooks[i].id; + if (r.status === 'fulfilled' && r.value?.data?.response === true) { + log('debug', `โœ”๏ธ Eliminado webhook ${id}`); + } else { + log('warn', `โš ๏ธ Fallรณ eliminar webhook ${id}`); + } + }); + + const ok = results.filter(r => r.status === 'fulfilled' && r.value?.data?.response === true).length; + log('info', `Limpieza OK (${ok}/${hooks.length} eliminados)`); + } catch (e) { + log('error', 'Fallo limpiando webhooks:', e.response?.data ?? e.message); + } +} + +// --- Registro del webhook con todos los eventos disponibles ---------- +export async function registerWebhook() { + const url = `http://nucleo-bot:${config.PORT}/webhook`; + + const eventConfig = { + onAck: false, // โŒ + onAddedToGroup: true, + onAnyMessage: true, + onBattery: true, + onBroadcast: true, + onButton: true, + onCallState: false, // โŒ + onChatDeleted: true, + onChatOpened: true, + onChatState: true, + onContactAdded: true, + onGlobalParticipantsChanged: true, + onGroupApprovalRequest: true, + onGroupChange: true, + onIncomingCall: false, // โŒ + onLabel: true, + onLogout: true, + onMessage: false, // โŒ + onMessageDeleted: true, + onNewProduct: true, + onOrder: true, + onPlugged: false, // โŒ + onPollVote: true, + onReaction: true, + onRemovedFromGroup: false, // โŒ + onStateChanged: false, // โŒ + onStory: false, // โŒ + }; + + // usa el config de eventos para filtrar los habilitados (el config de arriba) + const allEvents = Object.entries(eventConfig) + .filter(([_, enabled]) => enabled) + .map(([event]) => event); + + + const { data } = await axios.post(`${config.API_URL}/registerWebhook`, { + args: { url, events: allEvents, id: 'nucleo-bot' } + }); + + log('info', 'โœ”๏ธ Webhook registrado:', data); +} + + +export async function setTypingStatus(chatId, status) { + try { + const { data } = await axios.post(`${config.API_URL}/simulateTyping`, { + args: { to: chatId, on: status } + }); + log('debug', 'Respuesta de /setChatState โ†’', data); + } catch (e) { + log('error', 'Fallo /setChatState:', e.response?.data ?? e.message); + } +} + diff --git a/sad b/sad new file mode 100644 index 0000000..57b1b51 --- /dev/null +++ b/sad @@ -0,0 +1,4409 @@ +{ + "success": true, + "response": [ + { + "id": "false_120363203056794284@g.us_3AE345DA92A765C83BFF_50494366412@c.us", + "rowId": 999998869, + "viewed": false, + "body": "Brooks brothers me han durado Aร‘OS pero ya no estan baratas como antes", + "type": "chat", + "t": 1744750567, + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "ack": 0, + "invis": true, + "star": false, + "kicNotified": false, + "isFromTemplate": false, + "pollOptions": [], + "pollInvalidated": false, + "pollVotesSnapshot": { + "pollVotes": [] + }, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "broadcast": false, + "mentionedJidList": [], + "groupMentions": [], + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 160, + "1": 30, + "2": 255, + "3": 226, + "4": 121, + "5": 18, + "6": 157, + "7": 100, + "8": 35, + "9": 22, + "10": 181, + "11": 241, + "12": 169, + "13": 31, + "14": 155, + "15": 104, + "16": 193, + "17": 131, + "18": 173, + "19": 125, + "20": 198, + "21": 249, + "22": 0, + "23": 180, + "24": 100, + "25": 76, + "26": 73, + "27": 168, + "28": 4, + "29": 28, + "30": 137, + "31": 138 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": true, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "botTargetSenderJid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3AE345DA92A765C83BFF", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744750567, + "content": "Brooks brothers me han durado Aร‘OS pero ya no estan baratas como antes", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Brooks brothers me han durado Aร‘OS pero ya no estan baratas como antes" + }, + { + "id": "false_120363203056794284@g.us_EA39F4D62C334316F79635663A452C89_50433253569@c.us", + "rowId": 999998870, + "viewed": false, + "body": "Polo negro", + "type": "chat", + "t": 1744751029, + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50433253569@c.us", + "ack": 0, + "invis": true, + "star": false, + "kicNotified": false, + "isFromTemplate": false, + "thumbnail": "", + "richPreviewType": 0, + "pollOptions": [], + "pollInvalidated": false, + "pollVotesSnapshot": { + "pollVotes": [] + }, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "broadcast": false, + "quotedMsg": { + "id": "false_120363203056794284@g.us_3A7C944D18407772C0A1_50494366412@c.us", + "viewed": false, + "body": "Las camisetas en tommy y nautica estan baratisimas", + "type": "chat", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "star": false, + "kicNotified": false, + "isFromTemplate": false, + "pollOptions": [], + "pollInvalidated": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "ephemeralDuration": null, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "requiresDirectConnection": null, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3A7C944D18407772C0A1", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "content": "Las camisetas en tommy y nautica estan baratisimas", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Las camisetas en tommy y nautica estan baratisimas" + }, + "quotedStanzaID": "3A7C944D18407772C0A1", + "quotedParticipant": "50494366412@c.us", + "mentionedJidList": [], + "groupMentions": [], + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 29, + "1": 55, + "2": 182, + "3": 137, + "4": 72, + "5": 221, + "6": 68, + "7": 173, + "8": 196, + "9": 61, + "10": 127, + "11": 167, + "12": 235, + "13": 36, + "14": 122, + "15": 251, + "16": 194, + "17": 122, + "18": 185, + "19": 168, + "20": 255, + "21": 92, + "22": 116, + "23": 71, + "24": 251, + "25": 9, + "26": 168, + "27": 69, + "28": 213, + "29": 183, + "30": 228, + "31": 63 + }, + "inviteGrpType": "DEFAULT", + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": true, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "botTargetSenderJid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "EA39F4D62C334316F79635663A452C89", + "sender": { + "id": "50433253569@c.us", + "name": "Diego Lopez (ing industrial,)", + "shortName": "Diego Lopez", + "pushname": "Diego Lรณpez", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Diego Lopez (ing industrial,)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744751029, + "content": "Polo negro", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Polo negro", + "quoteMap": { + "false_120363203056794284@g.us_EA39F4D62C334316F79635663A452C89_50433253569@c.us": { + "quotes": "false_120363203056794284@g.us_3A7C944D18407772C0A1_50494366412@c.us", + "body": "Polo negro" + }, + "false_120363203056794284@g.us_3A7C944D18407772C0A1_50494366412@c.us": { + "body": "Las camisetas en tommy y nautica estan baratisimas", + "quotes": null + } + }, + "quotedMsgObj": { + "id": "false_120363203056794284@g.us_3A7C944D18407772C0A1_50494366412@c.us", + "viewed": false, + "body": "Las camisetas en tommy y nautica estan baratisimas", + "type": "chat", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "star": false, + "kicNotified": false, + "isFromTemplate": false, + "pollOptions": [], + "pollInvalidated": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "ephemeralDuration": null, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "requiresDirectConnection": null, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3A7C944D18407772C0A1", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "content": "Las camisetas en tommy y nautica estan baratisimas", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Las camisetas en tommy y nautica estan baratisimas" + } + }, + { + "id": "false_120363203056794284@g.us_FBCE431877E65B8360CBF683D4B6CC79_50433253569@c.us", + "rowId": 999998871, + "viewed": false, + "body": "", + "type": "sticker", + "t": 1744751030, + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50433253569@c.us", + "ack": 0, + "invis": true, + "star": false, + "kicNotified": false, + "clientUrl": "https://mmg.whatsapp.net/v/t62.15575-24/30645697_1748165489443845_386955422450987378_n.enc?ccb=11-4&oh=01_Q5Aa1QGtFr2c0hgZOPh9UzprWFrOfEFHhreEfcThy9esTKx48A&oe=6826506B&_nc_sid=5e03e0&mms3=true", + "deprecatedMms3Url": "https://mmg.whatsapp.net/v/t62.15575-24/30645697_1748165489443845_386955422450987378_n.enc?ccb=11-4&oh=01_Q5Aa1QGtFr2c0hgZOPh9UzprWFrOfEFHhreEfcThy9esTKx48A&oe=6826506B&_nc_sid=5e03e0&mms3=true", + "directPath": "/v/t62.15575-24/30645697_1748165489443845_386955422450987378_n.enc?ccb=11-4&oh=01_Q5Aa1QGtFr2c0hgZOPh9UzprWFrOfEFHhreEfcThy9esTKx48A&oe=6826506B&_nc_sid=5e03e0", + "mimetype": "image/webp", + "filehash": "y/rlKh2czIBfYdTA0qEU+hDh2Omn7iyadj0ut64zkic=", + "encFilehash": "oV/xPZgsNYqeA5sROU/bdnHcM4bfRKXWI6upYbgOWbc=", + "mediaKey": "v5KYRxHh7R0ZYSpDxvODhqKFEwY+LV7l04xpVnLv6R8=", + "mediaKeyTimestamp": 1744731404, + "width": 64, + "height": 64, + "stickerPackId": "com.marsvard.stickermakerforwhatsapp.stickercontentprovider 1606428536", + "stickerPackName": "MM5", + "stickerPackPublisher": "jangon", + "isFromTemplate": false, + "isAnimated": false, + "isLottie": false, + "pollOptions": [], + "pollInvalidated": false, + "pollVotesSnapshot": { + "pollVotes": [] + }, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "broadcast": false, + "mentionedJidList": [], + "groupMentions": [], + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 238, + "1": 22, + "2": 201, + "3": 96, + "4": 245, + "5": 58, + "6": 251, + "7": 79, + "8": 199, + "9": 56, + "10": 231, + "11": 51, + "12": 133, + "13": 1, + "14": 166, + "15": 173, + "16": 127, + "17": 213, + "18": 182, + "19": 162, + "20": 243, + "21": 90, + "22": 49, + "23": 203, + "24": 101, + "25": 87, + "26": 183, + "27": 61, + "28": 31, + "29": 214, + "30": 72, + "31": 173 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": true, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "botTargetSenderJid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "FBCE431877E65B8360CBF683D4B6CC79", + "sender": { + "id": "50433253569@c.us", + "name": "Diego Lopez (ing industrial,)", + "shortName": "Diego Lopez", + "pushname": "Diego Lรณpez", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Diego Lopez (ing industrial,)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744751030, + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": true, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": { + "type": "sticker", + "mediaStage": "RESOLVED", + "size": 7352, + "loadedSize": 7370, + "filehash": "y/rlKh2czIBfYdTA0qEU+hDh2Omn7iyadj0ut64zkic=", + "mimetype": "image/webp", + "mediaBlob": null, + "fullHeight": 512, + "fullWidth": 512, + "aspectRatio": 1, + "animationDuration": 0, + "animatedAsNewMsg": false, + "isAnimated": false, + "isFirstParty": false, + "isFromStickerMaker": false, + "isAvatar": false, + "isAiSticker": false, + "isLottie": false, + "stickerPackId": "com.marsvard.stickermakerforwhatsapp.stickercontentprovider 1606428536", + "stickerPackName": "MM5", + "stickerPackPublisher": "jangon", + "stickerMakerSourceType": null, + "singleLoopDuration": 0, + "emojis": [ + "๐Ÿ˜‚" + ], + +#### ERA MUCHO TEXTO LO TUVE QUE CORTAR ### + +se, + "device": 77, + "local": false, + "fromMe": true, + "mId": "3F733559A222D8FF7701", + "sender": { + "id": "50498554225@c.us", + "name": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒjose", + "shortName": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒjose", + "pushname": "๐Ÿ“€๐Ÿงฎ๐Ÿ“ก๐ŸŒ", + "type": "in", + "isBusiness": false, + "isEnterprise": false, + "isSmb": false, + "isContactSyncCompleted": 1, + "disappearingModeDuration": 0, + "disappearingModeSettingTimestamp": 1700599275, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Tรบ", + "isMe": true, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/471428085_1635189164083925_3546014480456031647_n.jpg?ccb=11-4&oh=01_Q5Aa1QEcY0ZyF_nAP_KTF7kAJcqti8QRGxVmfmtsq5kQdAJYPw&oe=680E6BB3&_nc_sid=5e03e0&_nc_cat=106", + "id": "50498554225@c.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/471428085_1635189164083925_3546014480456031647_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QGSoik0i8urUJvIQqq4hLEIKF3hNe3yVTm1Vnu-DOS9rg&oe=680E6BB3&_nc_sid=5e03e0&_nc_cat=106", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/471428085_1635189164083925_3546014480456031647_n.jpg?ccb=11-4&oh=01_Q5Aa1QEcY0ZyF_nAP_KTF7kAJcqti8QRGxVmfmtsq5kQdAJYPw&oe=680E6BB3&_nc_sid=5e03e0&_nc_cat=106", + "tag": "1735668406" + }, + "msgs": null + }, + "senderId": null, + "timestamp": 1744924512, + "content": "ya se los va a llevar la verga", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "ya se los va a llevar la verga" + }, + { + "id": "false_120363203056794284@g.us_DEB4B89F142D0025224C27C4F946D503_50496833888@c.us", + "viewed": false, + "body": "Si le digo lo hace", + "type": "chat", + "t": 1744924512, + "notifyName": "VA", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50496833888@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "thumbnail": "", + "richPreviewType": 0, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "quotedMsg": { + "id": "false_120363203056794284@g.us_3A5C80AB237E15510AE3_50494366412@c.us", + "viewed": false, + "body": "Te va a recomendar?", + "type": "chat", + "t": 1744923843, + "notifyName": "Rc", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 239, + "1": 243, + "2": 247, + "3": 175, + "4": 76, + "5": 20, + "6": 44, + "7": 29, + "8": 76, + "9": 89, + "10": 135, + "11": 227, + "12": 92, + "13": 33, + "14": 231, + "15": 205, + "16": 83, + "17": 220, + "18": 65, + "19": 220, + "20": 168, + "21": 229, + "22": 175, + "23": 236, + "24": 64, + "25": 118, + "26": 210, + "27": 182, + "28": 216, + "29": 224, + "30": 184, + "31": 5 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 168, + "1": 107, + "2": 218, + "3": 143, + "4": 153, + "5": 175, + "6": 164, + "7": 225, + "8": 153, + "9": 208, + "10": 254, + "11": 159, + "12": 58, + "13": 14, + "14": 164, + "15": 236 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 146, + "3": 229, + "4": 61, + "5": 21, + "6": 132, + "7": 157, + "8": 237, + "9": 12, + "10": 161, + "11": 152, + "12": 30, + "13": 121, + "14": 184, + "15": 254, + "16": 250, + "17": 151, + "18": 211, + "19": 198 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3A5C80AB237E15510AE3", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744923843, + "content": "Te va a recomendar?", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Te va a recomendar?" + }, + "quotedStanzaID": "3A5C80AB237E15510AE3", + "quotedParticipant": "50494366412@c.us", + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 76, + "1": 224, + "2": 47, + "3": 253, + "4": 115, + "5": 2, + "6": 45, + "7": 85, + "8": 160, + "9": 125, + "10": 172, + "11": 191, + "12": 6, + "13": 138, + "14": 240, + "15": 60, + "16": 73, + "17": 171, + "18": 19, + "19": 130, + "20": 206, + "21": 153, + "22": 107, + "23": 64, + "24": 178, + "25": 35, + "26": 46, + "27": 149, + "28": 110, + "29": 118, + "30": 188, + "31": 75 + }, + "inviteGrpType": "DEFAULT", + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 38, + "1": 181, + "2": 25, + "3": 199, + "4": 252, + "5": 207, + "6": 212, + "7": 60, + "8": 11, + "9": 116, + "10": 29, + "11": 21, + "12": 63, + "13": 75, + "14": 167, + "15": 27 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 71, + "3": 20, + "4": 60, + "5": 229, + "6": 171, + "7": 7, + "8": 221, + "9": 37, + "10": 143, + "11": 239, + "12": 150, + "13": 241, + "14": 150, + "15": 215, + "16": 248, + "17": 151, + "18": 79, + "19": 240 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "DEB4B89F142D0025224C27C4F946D503", + "sender": { + "id": "50496833888@c.us", + "name": "Chino Virgilio (Meca)", + "shortName": "Chino Virgilio (Meca)", + "pushname": "VA", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Chino Virgilio (Meca)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744924512, + "content": "Si le digo lo hace", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Si le digo lo hace", + "quoteMap": { + "false_120363203056794284@g.us_DEB4B89F142D0025224C27C4F946D503_50496833888@c.us": { + "quotes": "false_120363203056794284@g.us_3A5C80AB237E15510AE3_50494366412@c.us", + "body": "Si le digo lo hace" + }, + "false_120363203056794284@g.us_3A5C80AB237E15510AE3_50494366412@c.us": { + "body": "Te va a recomendar?", + "quotes": null + } + }, + "quotedMsgObj": { + "id": "false_120363203056794284@g.us_3A5C80AB237E15510AE3_50494366412@c.us", + "viewed": false, + "body": "Te va a recomendar?", + "type": "chat", + "t": 1744923843, + "notifyName": "Rc", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 239, + "1": 243, + "2": 247, + "3": 175, + "4": 76, + "5": 20, + "6": 44, + "7": 29, + "8": 76, + "9": 89, + "10": 135, + "11": 227, + "12": 92, + "13": 33, + "14": 231, + "15": 205, + "16": 83, + "17": 220, + "18": 65, + "19": 220, + "20": 168, + "21": 229, + "22": 175, + "23": 236, + "24": 64, + "25": 118, + "26": 210, + "27": 182, + "28": 216, + "29": 224, + "30": 184, + "31": 5 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 168, + "1": 107, + "2": 218, + "3": 143, + "4": 153, + "5": 175, + "6": 164, + "7": 225, + "8": 153, + "9": 208, + "10": 254, + "11": 159, + "12": 58, + "13": 14, + "14": 164, + "15": 236 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 146, + "3": 229, + "4": 61, + "5": 21, + "6": 132, + "7": 157, + "8": 237, + "9": 12, + "10": 161, + "11": 152, + "12": 30, + "13": 121, + "14": 184, + "15": 254, + "16": 250, + "17": 151, + "18": 211, + "19": 198 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3A5C80AB237E15510AE3", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744923843, + "content": "Te va a recomendar?", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Te va a recomendar?" + } + }, + { + "id": "false_120363203056794284@g.us_3AA3B62C83BD84AF5D21_50494366412@c.us", + "viewed": false, + "body": "Maje ya te conocemos aqui todos", + "type": "chat", + "t": 1744925043, + "notifyName": "Rc", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "thumbnail": "", + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "quotedMsg": { + "id": "false_120363203056794284@g.us_DEB4B89F142D0025224C27C4F946D503_50496833888@c.us", + "viewed": false, + "body": "Si le digo lo hace", + "type": "chat", + "t": 1744924512, + "notifyName": "VA", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50496833888@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "thumbnail": "", + "richPreviewType": 0, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "quotedMsg": { + "type": "chat", + "kind": "chat", + "body": "Te va a recomendar?" + }, + "quotedStanzaID": "3A5C80AB237E15510AE3", + "quotedParticipant": "50494366412@c.us", + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 76, + "1": 224, + "2": 47, + "3": 253, + "4": 115, + "5": 2, + "6": 45, + "7": 85, + "8": 160, + "9": 125, + "10": 172, + "11": 191, + "12": 6, + "13": 138, + "14": 240, + "15": 60, + "16": 73, + "17": 171, + "18": 19, + "19": 130, + "20": 206, + "21": 153, + "22": 107, + "23": 64, + "24": 178, + "25": 35, + "26": 46, + "27": 149, + "28": 110, + "29": 118, + "30": 188, + "31": 75 + }, + "inviteGrpType": "DEFAULT", + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 38, + "1": 181, + "2": 25, + "3": 199, + "4": 252, + "5": 207, + "6": 212, + "7": 60, + "8": 11, + "9": 116, + "10": 29, + "11": 21, + "12": 63, + "13": 75, + "14": 167, + "15": 27 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 71, + "3": 20, + "4": 60, + "5": 229, + "6": 171, + "7": 7, + "8": 221, + "9": 37, + "10": 143, + "11": 239, + "12": 150, + "13": 241, + "14": 150, + "15": 215, + "16": 248, + "17": 151, + "18": 79, + "19": 240 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "DEB4B89F142D0025224C27C4F946D503", + "sender": { + "id": "50496833888@c.us", + "name": "Chino Virgilio (Meca)", + "shortName": "Chino Virgilio (Meca)", + "pushname": "VA", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Chino Virgilio (Meca)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744924512, + "content": "Si le digo lo hace", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Si le digo lo hace" + }, + "quotedStanzaID": "DEB4B89F142D0025224C27C4F946D503", + "quotedParticipant": "50496833888@c.us", + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 227, + "1": 187, + "2": 16, + "3": 163, + "4": 177, + "5": 12, + "6": 40, + "7": 82, + "8": 17, + "9": 113, + "10": 72, + "11": 214, + "12": 34, + "13": 144, + "14": 157, + "15": 28, + "16": 238, + "17": 123, + "18": 96, + "19": 115, + "20": 246, + "21": 75, + "22": 23, + "23": 133, + "24": 169, + "25": 112, + "26": 113, + "27": 216, + "28": 79, + "29": 106, + "30": 0, + "31": 53 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 37, + "1": 169, + "2": 161, + "3": 212, + "4": 69, + "5": 230, + "6": 246, + "7": 137, + "8": 215, + "9": 91, + "10": 249, + "11": 203, + "12": 218, + "13": 55, + "14": 66, + "15": 38 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 68, + "3": 11, + "4": 144, + "5": 181, + "6": 53, + "7": 53, + "8": 138, + "9": 96, + "10": 220, + "11": 82, + "12": 48, + "13": 164, + "14": 187, + "15": 167, + "16": 11, + "17": 80, + "18": 62, + "19": 239 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3AA3B62C83BD84AF5D21", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744925043, + "content": "Maje ya te conocemos aqui todos", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Maje ya te conocemos aqui todos", + "quoteMap": { + "false_120363203056794284@g.us_3AA3B62C83BD84AF5D21_50494366412@c.us": { + "quotes": "false_120363203056794284@g.us_DEB4B89F142D0025224C27C4F946D503_50496833888@c.us", + "body": "Maje ya te conocemos aqui todos" + }, + "false_120363203056794284@g.us_DEB4B89F142D0025224C27C4F946D503_50496833888@c.us": { + "quotes": "false_120363203056794284@g.us_3A5C80AB237E15510AE3_50494366412@c.us", + "body": "Si le digo lo hace" + }, + "false_120363203056794284@g.us_3A5C80AB237E15510AE3_50494366412@c.us": { + "body": "Te va a recomendar?", + "quotes": null + } + }, + "quotedMsgObj": { + "id": "false_120363203056794284@g.us_DEB4B89F142D0025224C27C4F946D503_50496833888@c.us", + "viewed": false, + "body": "Si le digo lo hace", + "type": "chat", + "t": 1744924512, + "notifyName": "VA", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50496833888@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "thumbnail": "", + "richPreviewType": 0, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "quotedMsg": { + "type": "chat", + "kind": "chat", + "body": "Te va a recomendar?" + }, + "quotedStanzaID": "3A5C80AB237E15510AE3", + "quotedParticipant": "50494366412@c.us", + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 76, + "1": 224, + "2": 47, + "3": 253, + "4": 115, + "5": 2, + "6": 45, + "7": 85, + "8": 160, + "9": 125, + "10": 172, + "11": 191, + "12": 6, + "13": 138, + "14": 240, + "15": 60, + "16": 73, + "17": 171, + "18": 19, + "19": 130, + "20": 206, + "21": 153, + "22": 107, + "23": 64, + "24": 178, + "25": 35, + "26": 46, + "27": 149, + "28": 110, + "29": 118, + "30": 188, + "31": 75 + }, + "inviteGrpType": "DEFAULT", + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 38, + "1": 181, + "2": 25, + "3": 199, + "4": 252, + "5": 207, + "6": 212, + "7": 60, + "8": 11, + "9": 116, + "10": 29, + "11": 21, + "12": 63, + "13": 75, + "14": 167, + "15": 27 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 71, + "3": 20, + "4": 60, + "5": 229, + "6": 171, + "7": 7, + "8": 221, + "9": 37, + "10": 143, + "11": 239, + "12": 150, + "13": 241, + "14": 150, + "15": 215, + "16": 248, + "17": 151, + "18": 79, + "19": 240 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "DEB4B89F142D0025224C27C4F946D503", + "sender": { + "id": "50496833888@c.us", + "name": "Chino Virgilio (Meca)", + "shortName": "Chino Virgilio (Meca)", + "pushname": "VA", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Chino Virgilio (Meca)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744924512, + "content": "Si le digo lo hace", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Si le digo lo hace" + } + }, + { + "id": "false_120363203056794284@g.us_3A67E57508EE083E05EB_50494366412@c.us", + "viewed": false, + "body": "Te gusta la paloma de parkdale", + "type": "chat", + "t": 1744925056, + "notifyName": "Rc", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 119, + "1": 49, + "2": 22, + "3": 237, + "4": 36, + "5": 34, + "6": 1, + "7": 219, + "8": 40, + "9": 27, + "10": 114, + "11": 182, + "12": 200, + "13": 238, + "14": 190, + "15": 68, + "16": 55, + "17": 40, + "18": 62, + "19": 98, + "20": 78, + "21": 132, + "22": 61, + "23": 180, + "24": 244, + "25": 165, + "26": 33, + "27": 16, + "28": 183, + "29": 247, + "30": 88, + "31": 46 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 251, + "1": 158, + "2": 101, + "3": 249, + "4": 235, + "5": 19, + "6": 176, + "7": 169, + "8": 171, + "9": 49, + "10": 110, + "11": 214, + "12": 15, + "13": 252, + "14": 50, + "15": 233 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 180, + "3": 135, + "4": 147, + "5": 31, + "6": 232, + "7": 97, + "8": 186, + "9": 7, + "10": 101, + "11": 215, + "12": 255, + "13": 55, + "14": 248, + "15": 73, + "16": 61, + "17": 175, + "18": 96, + "19": 6 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3A67E57508EE083E05EB", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744925056, + "content": "Te gusta la paloma de parkdale", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "Te gusta la paloma de parkdale" + }, + { + "id": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us", + "viewed": false, + "body": "No vas a renunciar ni aunque te ofrezcan 10millones semanales", + "type": "chat", + "t": 1744925067, + "notifyName": "Rc", + "from": "120363203056794284@g.us", + "to": "50498554225@c.us", + "author": "50494366412@c.us", + "ack": 1, + "invis": false, + "isNewMsg": true, + "star": false, + "kicNotified": false, + "recvFresh": true, + "isFromTemplate": false, + "pollInvalidated": false, + "isSentCagPollCreation": false, + "latestEditMsgKey": null, + "latestEditSenderTimestampMs": null, + "mentionedJidList": [], + "groupMentions": [], + "isEventCanceled": false, + "eventInvalidated": false, + "isVcardOverMmsDocument": false, + "isForwarded": false, + "labels": [], + "hasReaction": false, + "viewMode": "VISIBLE", + "messageSecret": { + "0": 147, + "1": 239, + "2": 253, + "3": 185, + "4": 230, + "5": 96, + "6": 75, + "7": 160, + "8": 112, + "9": 60, + "10": 90, + "11": 145, + "12": 126, + "13": 153, + "14": 72, + "15": 230, + "16": 161, + "17": 179, + "18": 22, + "19": 249, + "20": 178, + "21": 240, + "22": 138, + "23": 39, + "24": 124, + "25": 33, + "26": 228, + "27": 215, + "28": 39, + "29": 135, + "30": 171, + "31": 130 + }, + "productHeaderImageRejected": false, + "lastPlaybackProgress": 0, + "isDynamicReplyButtonsMsg": false, + "isCarouselCard": false, + "parentMsgId": null, + "callSilenceReason": null, + "isVideoCall": false, + "callDuration": null, + "callParticipants": null, + "isMdHistoryMsg": false, + "stickerSentTs": 0, + "isAvatar": false, + "lastUpdateFromServerTs": 0, + "invokedBotWid": null, + "bizBotType": null, + "botResponseTargetId": null, + "botPluginType": null, + "botPluginReferenceIndex": null, + "botPluginSearchProvider": null, + "botPluginSearchUrl": null, + "botPluginSearchQuery": null, + "botPluginMaybeParent": false, + "botReelPluginThumbnailCdnUrl": null, + "botMessageDisclaimerText": null, + "botMsgBodyType": null, + "reportingTokenInfo": { + "reportingToken": { + "0": 12, + "1": 118, + "2": 25, + "3": 244, + "4": 226, + "5": 250, + "6": 210, + "7": 0, + "8": 241, + "9": 96, + "10": 20, + "11": 79, + "12": 131, + "13": 106, + "14": 51, + "15": 171 + }, + "version": 1, + "reportingTag": { + "0": 1, + "1": 5, + "2": 18, + "3": 108, + "4": 28, + "5": 142, + "6": 62, + "7": 202, + "8": 147, + "9": 110, + "10": 228, + "11": 84, + "12": 35, + "13": 3, + "14": 242, + "15": 30, + "16": 45, + "17": 90, + "18": 58, + "19": 161 + } + }, + "requiresDirectConnection": false, + "bizContentPlaceholderType": null, + "hostedBizEncStateMismatch": false, + "senderOrRecipientAccountTypeHosted": false, + "placeholderCreatedWhenAccountIsHosted": false, + "local": false, + "fromMe": false, + "mId": "3ACFA5C9E06D8993A8D2", + "sender": { + "id": "50494366412@c.us", + "name": "Roberto (linwini, spot)", + "shortName": "Roberto", + "pushname": "Rc", + "type": "in", + "isContactSyncCompleted": 1, + "textStatusLastUpdateTime": -1, + "syncToAddressbook": true, + "formattedName": "Roberto (linwini, spot)", + "isMe": false, + "isMyContact": true, + "isPSA": false, + "isUser": true, + "isVerified": false, + "isWAContact": true, + "profilePicThumbObj": {}, + "msgs": null + }, + "senderId": null, + "timestamp": 1744925067, + "content": "No vas a renunciar ni aunque te ofrezcan 10millones semanales", + "isGroupMsg": true, + "isQuotedMsgAvailable": true, + "isMedia": false, + "chat": { + "id": "120363203056794284@g.us", + "pendingMsgs": false, + "lastReceivedKey": { + "fromMe": false, + "remote": "120363203056794284@g.us", + "id": "3ACFA5C9E06D8993A8D2", + "participant": "50494366412@c.us", + "_serialized": "false_120363203056794284@g.us_3ACFA5C9E06D8993A8D2_50494366412@c.us" + }, + "t": 1744925067, + "unreadCount": 3, + "unreadDividerOffset": 0, + "archive": false, + "isReadOnly": false, + "isLocked": false, + "isAnnounceGrpRestrict": false, + "muteExpiration": 0, + "isAutoMuted": false, + "name": "Servidores de G.O.D", + "notSpam": true, + "ephemeralDuration": 0, + "ephemeralSettingTimestamp": 0, + "disappearingModeInitiator": "chat", + "disappearingModeTrigger": "chat_settings", + "createdLocally": false, + "unreadMentionsOfMe": [], + "unreadMentionCount": 0, + "hasUnreadMention": false, + "archiveAtMentionViewedInDrawer": false, + "hasChatBeenOpened": false, + "tcToken": null, + "tcTokenTimestamp": null, + "endOfHistoryTransferType": 2, + "pendingInitialLoading": false, + "chatlistPreview": { + "type": "reaction", + "msgKey": "false_120363203056794284@g.us_3A0201F68CD35858037A_50494366412@c.us", + "parentMsgKey": "true_120363203056794284@g.us_EA6A20DDCF7A570A8CBA3C14707D6BB8_50498554225@c.us", + "reactionText": "๐Ÿ˜‚", + "sender": "50494366412@c.us", + "timestamp": 1744864006108 + }, + "celebrationAnimationLastPlayed": 0, + "hasRequestedWelcomeMsg": false, + "msgs": null, + "canSend": true, + "isGroup": true, + "groupType": "DEFAULT", + "pic": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "formattedTitle": "Servidores de G.O.D", + "contact": { + "id": "120363203056794284@g.us", + "name": "Servidores de G.O.D", + "type": "in", + "textStatusLastUpdateTime": -1, + "syncToAddressbook": false, + "formattedName": "Servidores de G.O.D", + "isMe": false, + "isMyContact": false, + "isPSA": false, + "isUser": false, + "isVerified": false, + "isWAContact": false, + "profilePicThumbObj": { + "eurl": "https://pps.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "id": "120363203056794284@g.us", + "img": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5Aa1QFLjAudy72QnFKjegyJdTQQhntYVgkIsRPhkiVBFxMRtg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "imgFull": "https://media-mia3-1.cdn.whatsapp.net/v/t61.24694-24/482532114_504063269308293_739073674674643596_n.jpg?ccb=11-4&oh=01_Q5Aa1QG9FGQdVx9u6gcl6-tu-YjvyGig-d7eXka2LyNTye0ATg&oe=680E8FA2&_nc_sid=5e03e0&_nc_cat=101", + "tag": "1744472134" + }, + "msgs": null + }, + "groupMetadata": { + "id": "120363203056794284@g.us", + "creation": 1705667786, + "owner": "50494366412@c.us", + "subject": "Servidores de G.O.D", + "subjectTime": 1742933381, + "descTime": 0, + "restrict": false, + "announce": false, + "noFrequentlyForwarded": false, + "ephemeralDuration": 0, + "disappearingModeTrigger": "chat_settings", + "membershipApprovalMode": false, + "memberAddMode": "all_member_add", + "reportToAdminMode": false, + "size": 0, + "support": false, + "suspended": false, + "terminated": false, + "uniqueShortNameMap": {}, + "isLidAddressingMode": false, + "isParentGroup": false, + "isParentGroupClosed": false, + "defaultSubgroup": false, + "generalSubgroup": false, + "generalChatAutoAddDisabled": false, + "allowNonAdminSubGroupCreation": false, + "lastActivityTimestamp": 0, + "lastSeenActivityTimestamp": 0, + "incognito": false, + "hasCapi": false, + "participants": [ + { + "id": "50495055207@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494533819@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50496833888@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50433253569@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50498554225@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50495223892@c.us", + "isAdmin": true, + "isSuperAdmin": false + }, + { + "id": "50494366412@c.us", + "isAdmin": false, + "isSuperAdmin": false + }, + { + "id": "50499747063@c.us", + "isAdmin": true, + "isSuperAdmin": false + } + ], + "pendingParticipants": [], + "pastParticipants": [], + "membershipApprovalRequests": [], + "subgroupSuggestions": [] + }, + "presence": { + "id": "120363203056794284@g.us", + "chatstates": [ + { + "id": "50494366412@c.us", + "type": "unavailable" + }, + { + "id": "50496833888@c.us", + "type": "unavailable" + } + ] + }, + "isOnline": false, + "participantsCount": 8 + }, + "isOnline": false, + "chatId": "120363203056794284@g.us", + "mediaData": {}, + "text": "No vas a renunciar ni aunque te ofrezcan 10millones semanales" + } + ] +} \ No newline at end of file