Initial commit - Last War messaging system

This commit is contained in:
2026-02-19 01:33:28 -06:00
commit 38a8447a64
2162 changed files with 216183 additions and 0 deletions

69
includes/translation_helper.php Executable file
View File

@@ -0,0 +1,69 @@
<?php
require_once __DIR__ . '/src/Translate.php';
function translateText(string $text, string $sourceLang, string $targetLang): ?string
{
$translator = new \src\Translate();
return $translator->translate($text, $sourceLang, $targetLang);
}
function detectLanguage(string $text): ?string
{
$translator = new \src\Translate();
return $translator->detectLanguage($text);
}
function getActiveLanguages(): array
{
$pdo = getDbConnection();
$stmt = $pdo->query("SELECT * FROM supported_languages WHERE is_active = 1 ORDER BY language_name");
return $stmt->fetchAll();
}
function queueTranslation(string $platform, int $chatId, int $userId, string $text, string $sourceLang): int
{
$pdo = getDbConnection();
$stmt = $pdo->prepare("
INSERT INTO translation_queue
(platform, chat_id, user_id, text_to_translate, source_lang, status, attempts, created_at)
VALUES (?, ?, ?, ?, ?, 'pending', 0, NOW())
");
$stmt->execute([$platform, $chatId, $userId, $text, $sourceLang]);
return (int) $pdo->lastInsertId();
}
function translateAndSendToPlatform(string $platform, int $chatId, string $htmlContent): void
{
$translator = new \src\Translate();
$converterClass = $platform === 'discord'
? \Discord\Converters\HtmlToDiscordMarkdownConverter::class
: \Telegram\Converters\HtmlToTelegramHtmlConverter::class;
$converter = new $converterClass();
$textContent = strip_tags($converter->convert($htmlContent));
$sourceLang = $translator->detectLanguage($textContent) ?? 'es';
$languages = getActiveLanguages();
$targetLangs = array_filter($languages, fn($l) => $l['language_code'] !== $sourceLang);
$translations = [];
foreach ($targetLangs as $lang) {
$translations[$lang['language_code']] = $translator->translate($textContent, $sourceLang, $lang['language_code']);
}
if ($platform === 'discord') {
$sender = new \Discord\DiscordSender();
$actions = new \Discord\Actions\DiscordActions();
$actions->sendWithTranslation((string)$chatId, $htmlContent, $translations);
} else {
$sender = new \Telegram\TelegramSender();
$actions = new \Telegram\Actions\TelegramActions();
$actions->sendWithTranslation((int)$chatId, $htmlContent, $translations);
}
}