almeira-web/scripts/send_apk_to_whatsapp.js

58 lines
2.6 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const axios = require('axios');
const EVOLUTION_API_URL = process.env.EVOLUTION_API_URL || 'https://evolution.almeira.com.co';
const EVOLUTION_API_KEY = process.env.EVOLUTION_API_KEY || 'EE49029EEB85-4568-8F81-C9FDFC6E2943';
const EVOLUTION_INSTANCE_NAME = process.env.EVOLUTION_INSTANCE_NAME || 'AutomataAlmeira';
const TARGET_PHONE = '573167455877';
const apkPath = path.resolve(__dirname, '../dripzone-app/android/app/build/outputs/apk/debug/app-debug.apk');
async function sendApkToCarlos() {
if (!fs.existsSync(apkPath)) {
console.error('❌ El archivo APK no existe en:', apkPath);
return;
}
const stat = fs.statSync(apkPath);
const sizeMB = (stat.size / (1024 * 1024)).toFixed(2);
console.log(`📦 Leyendo APK oficial (${sizeMB} MB)...`);
const apkBuffer = fs.readFileSync(apkPath);
const base64Data = apkBuffer.toString('base64');
const caption = `🚀 *DripZone Sneakers - APK Oficial Actualizado*\n\n📅 *Generado:* ${new Date().toLocaleString('es-CO', { timeZone: 'America/Bogota' })}\n📦 *Tamaño:* ${sizeMB} MB\n\n✨ *Novedades de esta versión:*\n🛡️ *Seguridad de Roles:* Botón Admin 100% oculto para clientes regulares; visible únicamente para administradores autenticados.\n🧹 *Catálogo Limpio en Vivo:* Eliminados productos mock iniciales. Si no hay productos publicados, muestra estado de actualización y drops.\n📥 *Feed WhatsApp & Selección:* Sincronización en vivo con grupos de WhatsApp, extracción por IA de marcas/tallas/precios y publicación selectiva a la app.\n✅ *Gestión Completa:* Proveedores, pedidos contraentrega, pagos Bold/Nequi y logística directa.\n\n📲 *Instalación:* Descarga y abre este archivo APK para actualizar la aplicación en tu dispositivo Android.`;
console.log(`📤 Enviando APK vía Evolution API a WhatsApp (+${TARGET_PHONE})...`);
try {
const response = await axios.post(
`${EVOLUTION_API_URL}/message/sendMedia/${EVOLUTION_INSTANCE_NAME}`,
{
number: TARGET_PHONE,
mediatype: 'document',
mimetype: 'application/vnd.android.package-archive',
fileName: 'DripZone_Actualizado.apk',
caption,
media: base64Data,
},
{
headers: {
apikey: EVOLUTION_API_KEY,
'Content-Type': 'application/json',
},
maxContentLength: Infinity,
maxBodyLength: Infinity,
timeout: 180000,
}
);
console.log('🎉 ¡APK enviado con éxito a tu WhatsApp!', response.data?.key?.id);
} catch (error) {
console.error('❌ Error enviando APK:', error?.response?.data || error.message);
}
}
sendApkToCarlos();