almeira-web/scripts/send_whatsapp_delivery.py

75 lines
3.2 KiB
Python

import urllib.request
import json
import ssl
import sys
import io
if sys.platform == 'win32':
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
EVOLUTION_API_URL = "https://evolution.almeira.com.co"
EVOLUTION_API_KEY = "EE49029EEB85-4568-8F81-C9FDFC6E2943"
INSTANCE_NAME = "AutomataAlmeira"
TARGET_PHONE = "573167455877"
APK_URL = "https://dripzone.almeira.com.co/api/download-apk"
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
def send_request(endpoint, payload):
url = f"{EVOLUTION_API_URL}{endpoint}"
data = json.dumps(payload).encode("utf-8")
req = urllib.request.Request(url, data=data, headers={
"apikey": EVOLUTION_API_KEY,
"Content-Type": "application/json"
})
try:
with urllib.request.urlopen(req, context=ctx, timeout=60) as response:
return response.status, response.read().decode("utf-8")
except urllib.error.HTTPError as e:
return e.code, e.read().decode("utf-8")
except Exception as e:
return 0, str(e)
def send_update():
message_text = (
"🚀 *DripZone Sneakers - APK Oficial Actualizado (Privacidad Total)*\n\n"
"🔒 *Novedades de Privacidad Comercial & Sanitización:*\n"
"🛡️ *Cero Nombres de Grupos o Proveedores:* Se sanitizan estrictamente títulos y textos en toda la plataforma "
"(IA multimodal, feed de WhatsApp, panel administrativo y Appwrite). Ni en el título ni en la descripción figura jamás "
"el nombre del grupo de WhatsApp ni el proveedor/bodega.\n\n"
"💰 *Exclusión Total del Costo del Producto:* Se prohíbe y elimina automáticamente cualquier mención al costo o precio mayorista "
"de compra en títulos, copys y textos públicos. El costo solo se almacena internamente para control de márgenes.\n\n"
"⚡ *Gitea Sincronizado:* Código respaldado en el servidor Gitea (`gitea.almeira.com.co`).\n"
"🌐 *VPS Desplegado:* Nueva versión activa en `https://dripzone.almeira.com.co`.\n\n"
f"📲 *Enlace directo al APK:* {APK_URL}\n\n"
"Descarga el archivo adjunto para instalar o actualizar la aplicación en tu dispositivo Android."
)
print(f"📤 [1/2] Enviando mensaje de texto a WhatsApp (+{TARGET_PHONE})...")
payload_text = {
"number": TARGET_PHONE,
"text": message_text,
"delay": 1000
}
status, res = send_request(f"/message/sendText/{INSTANCE_NAME}", payload_text)
print(" -> Respuesta de texto:", status, res[:200] if res else "")
print(f"📤 [2/2] Enviando documento APK a WhatsApp (+{TARGET_PHONE})...")
payload_media = {
"number": TARGET_PHONE,
"mediatype": "document",
"mimetype": "application/vnd.android.package-archive",
"fileName": "DripZone.apk",
"caption": "📲 *DripZone.apk - Versión Oficial Actualizada*",
"media": APK_URL
}
status, res = send_request(f"/message/sendMedia/{INSTANCE_NAME}", payload_media)
print(" -> Respuesta de APK:", status, res[:200] if res else "")
if __name__ == "__main__":
send_update()