diff --git a/bottelegram/telegram_bot.py b/bottelegram/telegram_bot.py index c713d83..aeea3ed 100644 --- a/bottelegram/telegram_bot.py +++ b/bottelegram/telegram_bot.py @@ -6,6 +6,15 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio import aiohttp +import socket + +# Forzar IPv4 a nivel global para evitar problemas de conectividad en Docker/ZimaOS +orig_getaddrinfo = socket.getaddrinfo +def patched_getaddrinfo(*args, **kwargs): + responses = orig_getaddrinfo(*args, **kwargs) + return [res for res in responses if res[0] == socket.AF_INET] +socket.getaddrinfo = patched_getaddrinfo + from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Application, CommandHandler, MessageHandler, CallbackQueryHandler, ContextTypes, filters @@ -283,15 +292,34 @@ async def handle_video_note(update: Update, context: ContextTypes.DEFAULT_TYPE): return def run_telegram_bot(): - from botdiscord.database import init_db - init_db() + try: + from botdiscord.database import init_db + init_db() + except Exception as e: + print(f"⚠️ Advertencia: Error al inicializar DB (reintentando luego): {e}") token = get_telegram_token() if not token or token == "TU_TELEGRAM_BOT_TOKEN": - print("ERROR: Configura el token de Telegram en config.yaml") + print("ERROR: Configura el token de Telegram en config.yaml o .env") return - application = Application.builder().token(token).build() + # Configuración de red de máxima compatibilidad (Forzar IPv4 y HTTP/1.1) + from telegram.request import HTTPXRequest + import httpx + import socket + + # Creamos un pool que ignore IPv6 si es posible + limits = httpx.Limits(max_connections=10, max_keepalive_connections=5) + + request = HTTPXRequest( + connect_timeout=30.0, + read_timeout=30.0, + write_timeout=30.0, + pool_timeout=30.0, + http_version="1.1" + ) + + application = Application.builder().token(token).request(request).build() application.add_handler(CommandHandler("start", start)) application.add_handler(CommandHandler("idiomas", languages_command)) diff --git a/casaos.yaml b/casaos.yaml index fbcf539..1699907 100644 --- a/casaos.yaml +++ b/casaos.yaml @@ -13,7 +13,7 @@ services: - ADMIN_USERNAME=nickpons666 - DATABASE_PATH=/app/data/bots_config.db - DB_HOST=10.10.4.17 - - DB_NAME=mi_red + - DB_NAME=traductor_bots - DB_PASSWORD=MiPo6425@@ - DB_PORT=3390 - DB_TYPE=mysql @@ -25,8 +25,11 @@ services: - WEB_PORT=8000 hostname: bots-translation image: registry-pons.duckdns.org/bots-translation:v1 + dns: + - 8.8.8.8 + - 1.1.1.1 labels: - icon: https://raw.githubusercontent.com/istomes/casaos-icons/main/icons/bot.png + icon: https://www.ruthlessreviews.com/wp-content/uploads/2025/12/last-war-image.jpg ports: - target: 8000 published: "8091" @@ -36,6 +39,9 @@ services: - type: bind source: /DATA/AppData/bots-translation/data target: /app/data + - type: bind + source: /DATA/AppData/bots-translation/data/logs + target: /app/data/logs x-casaos: envs: - container: DISCORD_TOKEN @@ -95,7 +101,7 @@ x-casaos: en_us: Bots de traducción para Discord y Telegram con panel web developer: nickpons666 hostname: "" - icon: https://raw.githubusercontent.com/istomes/casaos-icons/main/icons/bot.png + icon: https://www.ruthlessreviews.com/wp-content/uploads/2025/12/last-war-image.jpg index: / is_uncontrolled: false main: bots-translation