import logging
import requests
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

# ==========================================
# KONFIGURASI BOT TELEGRAM & SERPER API
# ==========================================
# Masukkan Token Bot dari @BotFather Telegram Anda
TELEGRAM_BOT_TOKEN = "8926111454:AAGH2O63wZz1_9es1VlvDQoYhXAoC6MsI_g"

# Masukkan API Key dari Serper.dev
SERPER_API_KEY = "057f8d7ff747a8a12bace69e6b65b6e58d8dd470"

# Domain target yang dipantau
TARGET_DOMAIN = "wuling338"

logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)

async def check_rank(update: Update, context: ContextTypes.DEFAULT_TYPE):
    keyword = " ".join(context.args) if context.args else "wuling338"

    await update.message.reply_text(
        f"🇮🇩 🔍 **Sedang Memeriksa Google Indonesia...**\n\n"
        f"🎯 Target: `{TARGET_DOMAIN}`\n"
        f"🔑 Keyword: *'{keyword}'*",
        parse_mode="Markdown"
    )

    try:
        url = "https://google.serper.dev/search"
        headers = {
            'X-API-KEY': SERPER_API_KEY,
            'Content-Type': 'application/json'
        }
        payload = {
            'q': keyword,
            'gl': 'id',   # Geolocation Indonesia
            'hl': 'id',   # Bahasa Indonesia
            'num': 50     # Ambil Top 50 Google Indonesia
        }

        response = requests.post(url, headers=headers, json=payload).json()
        organic_results = response.get('organic', [])

        rank_found = None
        target_url = ""
        target_title = ""

        for index, item in enumerate(organic_results, start=1):
            link = item.get('link', '')
            if TARGET_DOMAIN.lower() in link.lower():
                rank_found = index
                target_url = link
                target_title = item.get('title', '')
                break

        if rank_found:
            pesan = (
                f"✅ **DITEMUKAN DI GOOGLE INDONESIA!**\n\n"
                f"🔑 **Keyword:** `{keyword}`\n"
                f"🏆 **Posisi Peringkat:** #{rank_found}\n"
                f"📌 **Judul SERP:** {target_title}\n"
                f"🔗 **URL:** {target_url}"
            )
        else:
            pesan = (
                f"❌ **TIDAK DITEMUKAN**\n\n"
                f"Domain/URL `{TARGET_DOMAIN}` tidak ditemukan dalam **Top 50** Google Indonesia untuk kata kunci *'{keyword}'*."
            )

        await update.message.reply_text(pesan, parse_mode="Markdown")

    except Exception as e:
        await update.message.reply_text(f"⚠️ Terjadi kesalahan: {str(e)}")

if __name__ == '__main__':
    app = ApplicationBuilder().token(TELEGRAM_BOT_TOKEN).build()
    app.add_handler(CommandHandler("cek", check_rank))

    print("Bot Cek Rank Berhasil Aktif!")
    app.run_polling()