=== Environment Diagnostics === PHP Version: 7.4.33 Server OS: Linux Current Directory: /home/teac11783/dexprotection.teacherslex.site/zerox Directory [temp] (/home/teac11783/dexprotection.teacherslex.site/zerox/temp): - Exists: Yes - Writable: Yes - Readable: Yes Directory [data] (/home/teac11783/dexprotection.teacherslex.site/zerox/data): - Exists: Yes - Writable: Yes - Readable: Yes Directory [fonts] (/home/teac11783/dexprotection.teacherslex.site/zerox/fonts): - Exists: Yes - Writable: Yes - Readable: Yes === Telegram API Webhook Info === Querying URL: https://api.telegram.org/bot/getWebhookInfo HTTP Status Code: 401 Response: {"ok":false,"error_code":401,"description":"Unauthorized"} === Log Diagnostics === webhook_last.log does not exist. bot_error.log does not exist. === Server File Check (Diagnostic) === File [bot.php]: Exists (Size: 15684 bytes, Last Modified: 2026-06-10 05:34:42) File [config.php]: Exists (Size: 2872 bytes, Last Modified: 2026-06-22 07:30:00) File [points.php]: Exists (Size: 10449 bytes, Last Modified: 2026-06-10 06:17:45) File [owner_panel.php]: Exists (Size: 17590 bytes, Last Modified: 2026-06-22 09:32:25) File [worker.php]: Exists (Size: 17493 bytes, Last Modified: 2026-06-09 21:49:31) === .htaccess Check === .htaccess does not exist. === Server File Content Peek === --- Peek inside bot.php --- 1: false, 'message' => '❌ Only TTF, OTF, WOFF, WOFF2 allowed.']; 25: } 26: if (($fileData['size'] ?? 0) > 5 * 1024 * 1024) { 27: return ['success' => false, 'message' => '❌ Font too large (max 5MB).']; 28: } 29: $safeName = preg_replace('/[^a-zA-Z0-9_\-.]/', '_', $fileData['name']); 30: $dest = FONTS_DIR . '/' . $safeName; 31: if (!move_uploaded_file($fileData['tmp_name'], $dest)) { 32: return ['success' => false, 'message' => '❌ Failed to save font file.']; 33: } 34: return ['success' => true, 'message' => "✅ Font '$safeName' uploaded!"]; 35: } 36: 37: function handleTelegramFontUpload(int $chatId, array $doc): void { 38: // stub — not used in JSON mode 39: } --- Peek inside config.php --- 1: