#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import logging
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
from config import TOKEN

# Konfigurasi logging
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)
logger = logging.getLogger(__name__)

# Define command handlers
async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """Mengirim pesan saat perintah /start diterima."""
    user = update.effective_user
    await update.message.reply_html(
        f"Halo {user.mention_html()}! 👋\n\n"
        f"Saya adalah bot untuk mengunduh file dari Terabox. "
        f"Kirimkan link Terabox dan saya akan mengunduhkannya untuk Anda.\n\n"
        f"Gunakan /help untuk melihat bantuan penggunaan."
    )

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """Mengirim pesan bantuan saat perintah /help diterima."""
    help_text = (
        "🔍 *Cara Menggunakan Bot*\n\n"
        "1. Kirim link Terabox yang ingin diunduh\n"
        "2. Bot akan memproses link tersebut\n"
        "3. Jika berhasil, bot akan mengirimkan file atau link download"
    )
    await update.message.reply_markdown(help_text)

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """Menangani pesan teks yang diterima."""
    message_text = update.message.text
    await update.message.reply_text(f"Anda mengirim: {message_text}\nFitur unduh file sedang dalam pengembangan.")

def main() -> None:
    """Memulai bot."""
    # Buat aplikasi
    application = Application.builder().token(TOKEN).build()

    # Tambahkan handler untuk perintah
    application.add_handler(CommandHandler("start", start_command))
    application.add_handler(CommandHandler("help", help_command))
    
    # Tambahkan handler untuk pesan teks
    application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
    
    # Mulai polling
    logger.info("Starting bot")
    application.run_polling(drop_pending_updates=True)

if __name__ == '__main__':
    main()
