Mejoras en el envío de plantillas con imágenes

- Agregar detección de URLs de Discord gifts para evitar botones de traducción
- Enviar imágenes en orden correcto (texto-imagen-texto-imagen) en Discord y Telegram
- Usar APP_URL del .env para las URLs de imágenes
- Agregar funciones sendContentWithOrderedImagesAndButtons en ambos bots
This commit is contained in:
2026-02-19 19:12:28 -06:00
parent a55c45ef94
commit e8912bdb63
5 changed files with 130 additions and 89 deletions

View File

@@ -1,7 +1,7 @@
<?php
/**
* Verifica si un texto contiene contenido real (no solo emojis, espacios, etc)
* Verifica si un texto contiene contenido real (no solo emojis, URLs de GIFs, espacios, etc)
* Los emojis se preservan en el texto, solo verificamos que hay más que eso
*/
function hasRealContent(string $text): bool
@@ -10,23 +10,34 @@ function hasRealContent(string $text): bool
return false;
}
// Hacer una copia para procesarla sin alterar el original
$clean = trim($text);
if (empty($clean)) {
return false;
}
// Remover emojis y caracteres especiales, preservar solo letras, números y puntuación básica
// Esta expresión regular mantiene letras, números y puntuación, elimina emojis
// Emojis Unicode: rangos múltiples de caracteres
$clean = preg_replace('/[\x{1F300}-\x{1F9FF}]/u', '', $clean); // Emojis de rango alto (0x1F300-0x1F9FF)
$clean = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $clean); // Símbolos de ajedrez, dados, etc
$clean = preg_replace('/[\x{2B50}]/u', '', $clean); // Estrella
$clean = preg_replace('/[\x{00A0}\s]+/u', '', $clean); // Espacios en blanco (incluyendo no-breaking space)
$clean = preg_replace('/[\p{P}]/u', '', $clean); // Puntuación Unicode (incluyendo 👍)
// Remover URLs de GIFs y medias (tenor, giphy, media.tenor, cdn.discordapp, etc)
$clean = preg_replace('/https?:\/\/(www\.)?(tenor\.com|giphy\.com|media\.tenor\.com|cdn\.discordapp\.com|media\.discord|gifcdn|gfycat\.com|reddit\.com\/r\/[^\/]+\/comments\/)[^\s]*/i', '', $clean);
// Remover URLs de Discord gifts
$clean = preg_replace('/https?:\/\/(www\.)?(discord\.gift|discord\.com\/gifts)[^\s]*/i', '', $clean);
// Remover otros URLs comunes (http://..., https://...)
$clean = preg_replace('/https?:\/\/[^\s]+/i', '', $clean);
$clean = trim($clean);
if (empty($clean)) {
return false;
}
// Remover emojis y caracteres especiales
$clean = preg_replace('/[\x{1F300}-\x{1F9FF}]/u', '', $clean);
$clean = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $clean);
$clean = preg_replace('/[\x{2B50}]/u', '', $clean);
$clean = preg_replace('/[\x{00A0}\s]+/u', '', $clean);
$clean = preg_replace('/[\p{P}]/u', '', $clean);
// Si después de remover emojis y espacios no queda nada, es solo emojis
return !empty(trim($clean));
}