← Voltar

callback_handler.py

from telegram import Update
from telegram.ext import ContextTypes

from handlers.youtube_audio_handler import process_youtube_audio
from handlers.youtube_video_handler import process_youtube_video


async def callback_router(update: Update, context: ContextTypes.DEFAULT_TYPE):
    query = update.callback_query
    await query.answer()

    data = query.data

    # Escolha áudio/vídeo para links detectados automaticamente
    if data.startswith("yt_audio_choice:"):
        uid = data.split(":", 1)[1]
        url = context.user_data.pop(f"youtube_url_{uid}", None)

        if not url:
            return await query.edit_message_text("❌ Erro: link expirado.")

        progress = await query.edit_message_text("🎵 Baixando áudio...")
        return await process_youtube_audio(update, context, url, progress)

    if data.startswith("yt_video_choice:"):
        uid = data.split(":", 1)[1]
        url = context.user_data.pop(f"youtube_url_{uid}", None)

        if not url:
            return await query.edit_message_text("❌ Erro: link expirado.")

        progress = await query.edit_message_text("🎬 Baixando vídeo...")
        return await process_youtube_video(update, context, url, progress)

    # Seleção de modo no menu do /start
    mode = data
    context.user_data["mode"] = mode

    msgs = {
        "yt_audio": "🎵 Modo áudio ativado. Envie um link do YouTube.",
        "yt_video": "🎬 Modo vídeo ativado. Envie um link do YouTube.",
        "instagram": "📸 Envie o link do Instagram.",
        "facebook": "📘 Envie o link do Facebook.",
        "tiktok": "🎵 Envie o link do TikTok.",
    }

    await query.edit_message_text(msgs.get(mode, "Modo desconhecido."))