← Voltar
link_handler.py
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import ContextTypes
import uuid
from utils.regex import is_youtube, is_instagram, is_facebook, is_tiktok
from handlers.youtube_audio_handler import process_youtube_audio
from handlers.youtube_video_handler import process_youtube_video
from handlers.instagram_handler import process_instagram
from handlers.facebook_handler import process_facebook
from handlers.tiktok_handler import process_tiktok
async def handle_link(update: Update, context: ContextTypes.DEFAULT_TYPE):
text = update.message.text
mode = context.user_data.get("mode")
# Se já escolheu no /start
if mode == "yt_audio":
context.user_data["mode"] = None
return await process_youtube_audio(update, context)
if mode == "yt_video":
context.user_data["mode"] = None
return await process_youtube_video(update, context)
# Auto-detecção YouTube
if is_youtube(text):
unique_id = str(uuid.uuid4())
context.user_data[f"youtube_url_{unique_id}"] = text
keyboard = [
[InlineKeyboardButton("🎵 Áudio", callback_data=f"yt_audio_choice:{unique_id}")],
[InlineKeyboardButton("🎬 Vídeo", callback_data=f"yt_video_choice:{unique_id}")],
]
await update.message.reply_text(
"Link do YouTube detectado. Escolha o formato:",
reply_markup=InlineKeyboardMarkup(keyboard)
)
return
# Outros serviços
if is_instagram(text):
return await process_instagram(update, context)
if is_facebook(text):
return await process_facebook(update, context)
if is_tiktok(text):
return await process_tiktok(update, context)
return await update.message.reply_text(
"❌ Link inválido. Envie um link do YouTube, Instagram, Facebook ou TikTok."
)