#!/usr/bin/php [environment]\n"); } $messageId = $argv[1]; $targetLang = $argv[2]; $userId = $argv[3]; $channelId = $argv[4]; file_put_contents(__DIR__ . '/logs/early_debug.log', date('Y-m-d H:i:s') . " - Arguments parsed. Calling direct_log for the first time.\n", FILE_APPEND); direct_log("[MANUAL_TRANSLATE_WORKER] Iniciando para msg {" . $messageId . "} a {" . $targetLang . "}"); try { $stmt = $pdo->prepare("SELECT message_content FROM recurrent_messages WHERE id = ?"); $stmt->execute([$messageId]); $originalHtml = $stmt->fetchColumn(); if ($originalHtml) { $translator = new Translate(LIBRETRANSLATE_URL); $textContent = strip_tags(html_entity_decode($originalHtml)); $sourceLang = $translator->detectLanguage($textContent); if ($sourceLang) { direct_log("[MANUAL_TRANSLATE_WORKER] Idioma detectado: {" . $sourceLang . "}. Traduciendo a {" . $targetLang . "}."); $translatedHtml = $translator->translateHtml($originalHtml, $sourceLang, $targetLang); if ($translatedHtml && $translatedHtml !== $originalHtml) { $sender = new DiscordSender(DISCORD_BOT_TOKEN); $mention = "<@" . $userId . ">"; $finalContent = $mention . " *Traducción a {" . $targetLang . "}:*\n" . $translatedHtml; $sender->sendMessage($channelId, $finalContent); direct_log("[MANUAL_TRANSLATE_WORKER] Traducción enviada con éxito."); } else { direct_log("[MANUAL_TRANSLATE_WORKER] La traducción falló o resultó en el mismo texto. No se envía nada."); } } else { direct_log("[MANUAL_TRANSLATE_WORKER] No se pudo detectar el idioma de origen."); } } else { direct_log("[MANUAL_TRANSLATE_WORKER] No se encontró la plantilla con ID {" . $messageId . "}."); } } catch (Throwable $e) { direct_log("[MANUAL_TRANSLATE_WORKER] ERROR FATAL: " . $e->getMessage() . " en " . $e->getFile() . ":" . $e->getLine()); } ?>