refactor: Update credential synchronization to async Gitea fetch and simplify root HTML serving.

This commit is contained in:
2026-03-24 02:26:23 +00:00
parent cb729809a9
commit 2480846e31
3 changed files with 27 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
import os import os
import asyncio import asyncio
import re import re
import logging
from telegram import Update from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
from orchestrator import ( from orchestrator import (
@@ -12,6 +13,13 @@ import speech_recognition as sr
from pydub import AudioSegment from pydub import AudioSegment
from gtts import gTTS from gtts import gTTS
# Configuração de logging
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
logger = logging.getLogger(__name__)
TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
ALLOWED_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID") ALLOWED_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
@@ -74,8 +82,9 @@ async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE):
else: else:
# Fallback AI Agent # Fallback AI Agent
from config import get_config from config import get_config
from ai_agent import query_agent_async
cfg = get_config() cfg = get_config()
reply = query_agent(user_msg, override_provider=cfg.get("active_provider")) reply = await query_agent_async(user_msg, override_provider=cfg.get("active_provider"))
await update.message.reply_text(reply) await update.message.reply_text(reply)
async def handle_voice(update: Update, context: ContextTypes.DEFAULT_TYPE): async def handle_voice(update: Update, context: ContextTypes.DEFAULT_TYPE):
@@ -94,6 +103,10 @@ def get_telegram_app():
return app return app
if __name__ == "__main__": if __name__ == "__main__":
logger.info("Bot começando a inicialização...")
try:
app = get_telegram_app() app = get_telegram_app()
print("Bot iniciando...") logger.info("Bot online. Iniciando polling...")
app.run_polling(drop_pending_updates=True) app.run_polling(drop_pending_updates=True)
except Exception as e:
logger.error(f"Erro fatal ao iniciar bot: {e}")

View File

@@ -10,7 +10,7 @@ from fastapi.templating import Jinja2Templates
from dotenv import load_dotenv from dotenv import load_dotenv
from starlette.concurrency import run_in_threadpool from starlette.concurrency import run_in_threadpool
from ai_agent import query_agent from ai_agent import query_agent_async
from config import get_config, save_config from config import get_config, save_config
from credential_manager import fetch_from_gitea_repo_async from credential_manager import fetch_from_gitea_repo_async
from orchestrator import ( from orchestrator import (
@@ -58,7 +58,7 @@ async def get_system_status(is_auth: bool = Depends(verify_password)):
async def web_chat(message: dict, is_auth: bool = Depends(verify_password)): async def web_chat(message: dict, is_auth: bool = Depends(verify_password)):
user_text = message.get("text", "") user_text = message.get("text", "")
if not user_text: return {"reply": "Vazio."} if not user_text: return {"reply": "Vazio."}
reply = query_agent(user_text) reply = await query_agent_async(user_text)
return {"reply": reply} return {"reply": reply}
@app.post("/api/orchestrate") @app.post("/api/orchestrate")

View File

@@ -1,13 +1,15 @@
#!/bin/bash #!/bin/bash
# Tenta limpar processos conflitantes no host se tiver acesso privilégido # Tenta limpar processos conflitantes no host se tiver acesso privilegiado
if [ -d "/host_root" ]; then if [ -d "/host_root" ]; then
echo "Limpando processos conflitantes no HOST..." echo "Limpando processos conflitantes no HOST..."
chroot /host_root /bin/bash -c "pkill -f telegram_bot.js" || true chroot /host_root /bin/bash -c "pkill -9 -f telegram_bot.js" || true
chroot /host_root /bin/bash -c "pkill -f bot_logic.py" || true chroot /host_root /bin/bash -c "pkill -9 -f bot_logic.py" || true
fi fi
# Inicia o serviço web # Inicia o serviço web com log unbuffered
echo "Iniciando Uvicorn..."
uvicorn main:app --host 0.0.0.0 --port 8000 & uvicorn main:app --host 0.0.0.0 --port 8000 &
# Inicia o Polling do Bot # Inicia o Polling do Bot com log unbuffered
python bot_logic.py echo "Iniciando Bot (bot_logic.py)..."
python3 -u bot_logic.py