# -*- coding: utf-8 -*-
import json
import os
import asyncio
from rubka.asynco import Robot, Message
from rubka.keypad import ChatKeypadBuilder
import random

bot = Robot("CCCJIJ0YRIVIYPXTMPZFSRNFKGHGQMPUITZHYCRKCZEYKXUIKORHSKNFLVFOFLAT")

# ========== تنظیمات ادمین اصلی ==========
# شناسه‌ای که با /id می‌گیرید رو اینجا بزارید
MAIN_ADMIN_ID = "u0HJ3Qv0bf537c266a6c07d51c13c9f7"  # <--- شناسه عددی یا رشته‌ای

# اینجا لیست ادمین‌ها (در فایل admins.json ذخیره میشه)
ADMIN_IDS = [MAIN_ADMIN_ID]
# =========================================

DATA_FILE = "start_text.json"
USERS_FILE = "users.json"
ADMINS_FILE = "admins.json"
START_TEXT = ""
AWAITING_BROADCAST = {}

def load_admins():
    if os.path.exists(ADMINS_FILE):
        with open(ADMINS_FILE, "r", encoding="utf-8") as f:
            data = json.load(f)
            if isinstance(data, list):
                # اطمینان از اینکه ادمین اصلی همیشه توی لیست هست
                if MAIN_ADMIN_ID not in data:
                    data.insert(0, MAIN_ADMIN_ID)
                    save_admins(data)
                return data
            return [MAIN_ADMIN_ID]
    return [MAIN_ADMIN_ID]

def save_admins(admins):
    # مطمئن میشویم ادمین اصلی همیشه توی لیست هست
    if MAIN_ADMIN_ID not in admins:
        admins.insert(0, MAIN_ADMIN_ID)
    with open(ADMINS_FILE, "w", encoding="utf-8") as f:
        json.dump(admins, f, ensure_ascii=False, indent=4)

# بارگذاری اولیه ادمین‌ها
admins = load_admins()
save_admins(admins)  # ذخیره برای اطمینان

def load_users():
    if os.path.exists(USERS_FILE):
        with open(USERS_FILE, "r", encoding="utf-8") as f:
            data = json.load(f)
            if isinstance(data, list):
                return data
            return []
    return []

def save_users(users):
    with open(USERS_FILE, "w", encoding="utf-8") as f:
        json.dump(users, f, ensure_ascii=False, indent=4)

def load_start_text():
    global START_TEXT
    if os.path.exists(DATA_FILE):
        with open(DATA_FILE, "r", encoding="utf-8") as f:
            data = json.load(f)
            START_TEXT = data.get("text", "سلام به ربات خوش اومدی برای دریافت اکانت رایگان امروز روی دکمه زیر کلیک کنید ⬇️🔥")
    else:
        START_TEXT = "سلام به ربات خوش اومدی برای دریافت اکانت رایگان امروز روی دکمه زیر کلیک کنید ⬇️🔥"
    return START_TEXT

def save_start_text(text):
    with open(DATA_FILE, "w", encoding="utf-8") as f:
        json.dump({"text": text}, f, ensure_ascii=False, indent=4)

load_start_text()
AWAITING_START = {}
AWAITING_ACCOUNT = {}
AWAITING_CP_CHEAT = {}
AWAITING_GAMING_SERVER = {}
AWAITING_FREE_CP = {}
AWAITING_DNS = {}
AWAITING_FREE_ACCOUNTS = {}
AWAITING_LEVEL_ACCOUNTS = {}
AWAITING_COMBO_40 = {}
AWAITING_COMBO_200 = {}
AWAITING_SAFE_ACCOUNT = {}
AWAITING_SPONSOR = {}
AWAITING_ADD_ADMIN = {}
AWAITING_REMOVE_ADMIN = {}
MEMBERSHIP_STATUS = {}

IMAGES = [
    "https://cdn.imgurl.ir/uploads/h955956_IMG_20260814_195728_903.jpg",
    "https://cdn.imgurl.ir/uploads/t97977_IMG_20260814_195733_366.jpg",
    "https://cdn.imgurl.ir/uploads/e196351_IMG_20260814_195737_073.jpg",
    "https://cdn.imgurl.ir/uploads/f35865_IMG_20260814_195748_742.jpg",
    "https://cdn.imgurl.ir/uploads/n577471_IMG_20260814_195657_051.jpg",
    "https://cdn.imgurl.ir/uploads/c006557_IMG_20260814_195702_924.jpg",
    "https://cdn.imgurl.ir/uploads/o78934_IMG_20260814_195713_091.jpg",
    "https://cdn.imgurl.ir/uploads/n528296_IMG_20260814_195725_727.jpg",
    "https://cdn.imgurl.ir/uploads/x825772_IMG_20260814_195650_296.jpg",
    "https://cdn.imgurl.ir/uploads/m958353_IMG_20260814_195639_254.jpg"
]

TEXTS = {
    "cp_cheat": "⚡ چیت سیپی:\n\nبه زودی اضافه می‌شود...",
    "gaming_server": "🎮 سرور گیمینگ:\n\nبه زودی اضافه می‌شود...",
    "free_cp": "🎁 سیپی رایگان:\n\nبه زودی اضافه می‌شود...",
    "dns": "🌐 دی ان اس اختصاصی:\n\nبه زودی اضافه می‌شود...",
    "free_accounts": "📋 لیست اکانت‌های رایگان:\n\nبه زودی اضافه می‌شود...",
    "level_accounts": "⭐ اکانت لول بالا:\n\nبه زودی اضافه می‌شود...",
    "combo_40": "📦 کمبو 40 تایی:\n\nبه زودی اضافه می‌شود...",
    "combo_200": "📦 کمبو 200 تایی:\n\nبه زودی اضافه می‌شود...",
    "safe_account": "🔐 اکانت سیف:\n\nبه زودی اضافه می‌شود..."
}

SPONSOR_TEXT = "برای استفاده از ربات باید عضو کانال های اسپناسر بشید لیست کانال ها\n\n@LUIZ"

def load_texts():
    global TEXTS
    if os.path.exists("buttons_texts.json"):
        with open("buttons_texts.json", "r", encoding="utf-8") as f:
            data = json.load(f)
            for key in TEXTS:
                if key in data:
                    TEXTS[key] = data[key]
    return TEXTS

def save_texts():
    with open("buttons_texts.json", "w", encoding="utf-8") as f:
        json.dump(TEXTS, f, ensure_ascii=False, indent=4)

load_texts()

def load_sponsor_text():
    global SPONSOR_TEXT
    if os.path.exists("sponsor_text.json"):
        with open("sponsor_text.json", "r", encoding="utf-8") as f:
            data = json.load(f)
            SPONSOR_TEXT = data.get("text", "برای استفاده از ربات باید عضو کانال های اسپناسر بشید لیست کانال ها\n\n@LUIZ")
    return SPONSOR_TEXT

def save_sponsor_text(text):
    with open("sponsor_text.json", "w", encoding="utf-8") as f:
        json.dump({"text": text}, f, ensure_ascii=False, indent=4)

load_sponsor_text()

def main_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(kb.button("get_account", "دریافت اکانت امروز❤️‍🔥"))
    return kb.build()

def account_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(kb.button("receive_account", "دریافت اکانت 💣"))
    return kb.build()

def membership_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(kb.button("check_membership", "بررسی عضویت ✨"))
    return kb.build()

def menu_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(
        kb.button("gaming_server", "🎮 سرور گیمینگ"),
        kb.button("cp_cheat", "⚡ چیت سیپی"),
        kb.button("free_cp", "🎁 سیپی رایگان")
    )
    kb.row(
        kb.button("dns", "🌐 دی ان اس اختصاصی"),
        kb.button("free_accounts", "📋 لیست اکانت رایگان"),
        kb.button("level_accounts", "⭐ اکانت لول بالا")
    )
    kb.row(
        kb.button("combo_40", "🔹 کمبو 40 تایی"),
        kb.button("combo_200", "🔸 کمبو 200 تایی"),
        kb.button("safe_account", "🔐 اکانت سیف")
    )
    kb.row(
        kb.button("creator", "👨‍💻 سازنده ربات")
    )
    return kb.build()

def admin_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(
        kb.button("admin_stats", "📊 آمار کاربران"),
        kb.button("broadcast", "📢 پیام همگانی"),
        kb.button("change_start_text", "✏️ تغییر متن استارت"),
        kb.button("change_account_text", "✏️ تغییر اکانت")
    )
    kb.row(
        kb.button("change_sponsor_text", "✏️ تغییر اسپناسر"),
        kb.button("change_texts", "📝 تغییرات متن"),
        kb.button("manage_admins", "👑 مدیریت ادمین ها"),
        kb.button("back_to_main", "🔙 بازگشت")
    )
    return kb.build()

def manage_admins_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(
        kb.button("add_admin", "➕ افزودن ادمین"),
        kb.button("list_admins", "📋 لیست ادمین ها")
    )
    kb.row(
        kb.button("remove_admin", "➖ حذف ادمین"),
        kb.button("back_to_admin", "🔙 بازگشت")
    )
    return kb.build()

def change_texts_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(
        kb.button("change_cp_cheat", "✏️ چیت سیپی"),
        kb.button("change_gaming_server", "✏️ سرور گیمینگ"),
        kb.button("change_free_cp", "✏️ سیپی رایگان")
    )
    kb.row(
        kb.button("change_dns", "✏️ دی ان اس"),
        kb.button("change_free_accounts", "✏️ اکانت رایگان"),
        kb.button("change_level_accounts", "✏️ اکانت لول بالا")
    )
    kb.row(
        kb.button("change_combo_40", "✏️ کمبو 40"),
        kb.button("change_combo_200", "✏️ کمبو 200"),
        kb.button("change_safe_account", "✏️ اکانت سیف")
    )
    kb.row(
        kb.button("back_to_admin", "🔙 بازگشت")
    )
    return kb.build()

def confirm_keyboard():
    kb = ChatKeypadBuilder()
    kb.row(
        kb.button("confirm_broadcast", "✅ ارسال کن"),
        kb.button("cancel_broadcast", "❌ لغو")
    )
    return kb.build()

ACCOUNT_TEXT = "عضویت شما تایید شد ✔️"

def load_account_text():
    global ACCOUNT_TEXT
    if os.path.exists("account_text.json"):
        with open("account_text.json", "r", encoding="utf-8") as f:
            data = json.load(f)
            ACCOUNT_TEXT = data.get("text", "عضویت شما تایید شد ✔️")
    return ACCOUNT_TEXT

def save_account_text(text):
    with open("account_text.json", "w", encoding="utf-8") as f:
        json.dump({"text": text}, f, ensure_ascii=False, indent=4)

load_account_text()

@bot.on_message(commands=["start"])
async def start_handler(bot: Robot, message: Message):
    user_id = str(message.sender_id)
    MEMBERSHIP_STATUS.pop(user_id, None)
    
    users = load_users()
    if user_id not in users:
        users.append(user_id)
        save_users(users)
    
    await message.reply_keypad(START_TEXT, keypad=main_keyboard())

@bot.on_message()
async def other_messages(bot: Robot, message: Message):
    global START_TEXT, ACCOUNT_TEXT, TEXTS, SPONSOR_TEXT
    text = message.text or ""
    user_id = str(message.sender_id)
    admins = load_admins()
    
    if text == "/id":
        await message.reply(f"🆔 شناسه شما:\n`{user_id}`", parse_mode="Markdown")
        return
    
    if text == "/panel":
        if user_id in admins:
            await message.reply_keypad(
                "👑 به پنل ادمین خوش آمدید ساخته شده با عشق❤️",
                keypad=admin_keyboard()
            )
        else:
            await message.reply("⛔ شما دسترسی به پنل ادمین ندارید!")
        return
    
    if text == "👑 مدیریت ادمین ها":
        if user_id in admins:
            await message.reply_keypad("👑 مدیریت ادمین ها:", keypad=manage_admins_keyboard())
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "➕ افزودن ادمین":
        if user_id in admins:
            AWAITING_ADD_ADMIN[user_id] = True
            await message.reply("🔹 شناسه کاربری که میخواهید ادمین کنید را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "📋 لیست ادمین ها":
        if user_id in admins:
            admins_list = load_admins()
            if admins_list:
                list_text = "📋 لیست ادمین‌ها:\n\n" + "\n".join([f"• {admin}" for admin in admins_list])
                await message.reply_keypad(list_text, keypad=manage_admins_keyboard())
            else:
                await message.reply_keypad("📋 هیچ ادمینی ثبت نشده است!", keypad=manage_admins_keyboard())
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "➖ حذف ادمین":
        if user_id in admins:
            AWAITING_REMOVE_ADMIN[user_id] = True
            await message.reply("🔹 شناسه کاربری که میخواهید از ادمین حذف کنید را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "/cancel" and user_id in AWAITING_ADD_ADMIN:
        del AWAITING_ADD_ADMIN[user_id]
        await message.reply("❌ افزودن ادمین لغو شد.")
        await message.reply_keypad("👑 مدیریت ادمین ها:", keypad=manage_admins_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_REMOVE_ADMIN:
        del AWAITING_REMOVE_ADMIN[user_id]
        await message.reply("❌ حذف ادمین لغو شد.")
        await message.reply_keypad("👑 مدیریت ادمین ها:", keypad=manage_admins_keyboard())
        return
    
    if user_id in AWAITING_ADD_ADMIN:
        new_admin = text.strip()
        admins = load_admins()
        
        if new_admin in admins:
            await message.reply("❌ این کاربر قبلاً ادمین است!")
        else:
            admins.append(new_admin)
            save_admins(admins)
            await message.reply(f"✅ کاربر {new_admin} با موفقیت ادمین شد!")
        
        del AWAITING_ADD_ADMIN[user_id]
        await message.reply_keypad("👑 مدیریت ادمین ها:", keypad=manage_admins_keyboard())
        return
    
    if user_id in AWAITING_REMOVE_ADMIN:
        remove_admin = text.strip()
        admins = load_admins()
        
        if remove_admin not in admins:
            await message.reply("❌ این کاربر ادمین نیست!")
        elif remove_admin == MAIN_ADMIN_ID:
            await message.reply("❌ نمی‌توانید ادمین اصلی را حذف کنید!")
        else:
            admins.remove(remove_admin)
            save_admins(admins)
            await message.reply(f"✅ کاربر {remove_admin} از ادمین‌ها حذف شد!")
        
        del AWAITING_REMOVE_ADMIN[user_id]
        await message.reply_keypad("👑 مدیریت ادمین ها:", keypad=manage_admins_keyboard())
        return
    
    if text == "🔙 بازگشت به پنل":
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if text == "📊 آمار کاربران":
        if user_id in admins:
            users = load_users()
            total_users = len(users)
            await message.reply_keypad(
                f"📊 تعداد کل کاربران ربات: {total_users} نفر",
                keypad=admin_keyboard()
            )
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "📢 پیام همگانی":
        if user_id in admins:
            AWAITING_BROADCAST[user_id] = {"step": "waiting"}
            await message.reply_keypad(
                "📝 متن پیام همگانی را ارسال کنید (برای لغو /cancel بزنید)",
                keypad=admin_keyboard()
            )
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "/cancel" and user_id in AWAITING_BROADCAST:
        del AWAITING_BROADCAST[user_id]
        await message.reply("❌ ارسال پیام همگانی لغو شد.")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if user_id in AWAITING_BROADCAST and AWAITING_BROADCAST[user_id].get("step") == "waiting":
        AWAITING_BROADCAST[user_id]["message"] = text
        AWAITING_BROADCAST[user_id]["step"] = "confirm"
        await message.reply_keypad(
            f"📨 متن پیام:\n\n{text}\n\nارسال شود؟",
            keypad=confirm_keyboard()
        )
        return
    
    if text == "✅ ارسال کن" and user_id in AWAITING_BROADCAST:
        msg = AWAITING_BROADCAST[user_id].get("message", "")
        users = load_users()
        success = 0
        fail = 0
        
        await message.reply("⏳ در حال ارسال پیام به کاربران...")
        
        for uid in users:
            try:
                await bot.send_message(uid, msg)
                success += 1
                await asyncio.sleep(0.05)
            except:
                fail += 1
        
        del AWAITING_BROADCAST[user_id]
        
        await message.reply_keypad(
            f"✅ ارسال پیام همگانی کامل شد!\n✅ موفق: {success}\n❌ ناموفق: {fail}",
            keypad=admin_keyboard()
        )
        return
    
    if text == "❌ لغو" and user_id in AWAITING_BROADCAST:
        del AWAITING_BROADCAST[user_id]
        await message.reply_keypad("❌ ارسال پیام همگانی لغو شد.", keypad=admin_keyboard())
        return
    
    if text == "🔙 بازگشت":
        MEMBERSHIP_STATUS.pop(user_id, None)
        await message.reply_keypad(START_TEXT, keypad=main_keyboard())
        return
    
    if text == "🔙 بازگشت به پنل":
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if text == "📝 تغییرات متن":
        if user_id in admins:
            await message.reply_keypad("📝 بخش تغییرات متن - روی هر دکمه کلیک کنید تا متن آن را تغییر دهید:", keypad=change_texts_keyboard())
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ تغییر اسپناسر":
        if user_id in admins:
            AWAITING_SPONSOR[user_id] = True
            await message.reply("📝 متن جدید اسپناسر را وارد کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ چیت سیپی":
        if user_id in admins:
            AWAITING_CP_CHEAT[user_id] = True
            await message.reply("📝 متن جدید چیت سیپی را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ سرور گیمینگ":
        if user_id in admins:
            AWAITING_GAMING_SERVER[user_id] = True
            await message.reply("📝 متن جدید سرور گیمینگ را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ سیپی رایگان":
        if user_id in admins:
            AWAITING_FREE_CP[user_id] = True
            await message.reply("📝 متن جدید سیپی رایگان را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ دی ان اس":
        if user_id in admins:
            AWAITING_DNS[user_id] = True
            await message.reply("📝 متن جدید دی ان اس را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ اکانت رایگان":
        if user_id in admins:
            AWAITING_FREE_ACCOUNTS[user_id] = True
            await message.reply("📝 متن جدید اکانت رایگان را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ اکانت لول بالا":
        if user_id in admins:
            AWAITING_LEVEL_ACCOUNTS[user_id] = True
            await message.reply("📝 متن جدید اکانت لول بالا را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ کمبو 40":
        if user_id in admins:
            AWAITING_COMBO_40[user_id] = True
            await message.reply("📝 متن جدید کمبو 40 را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ کمبو 200":
        if user_id in admins:
            AWAITING_COMBO_200[user_id] = True
            await message.reply("📝 متن جدید کمبو 200 را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "✏️ اکانت سیف":
        if user_id in admins:
            AWAITING_SAFE_ACCOUNT[user_id] = True
            await message.reply("📝 متن جدید اکانت سیف را ارسال کنید (برای لغو /cancel بزنید)")
        else:
            await message.reply("⛔ دسترسی غیرمجاز!")
        return
    
    if text == "/cancel" and user_id in AWAITING_START:
        del AWAITING_START[user_id]
        await message.reply("❌ تغییر متن استارت لغو شد.")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_ACCOUNT:
        del AWAITING_ACCOUNT[user_id]
        await message.reply("❌ تغییر متن اکانت لغو شد.")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_SPONSOR:
        del AWAITING_SPONSOR[user_id]
        await message.reply("❌ تغییر متن اسپناسر لغو شد.")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_CP_CHEAT:
        del AWAITING_CP_CHEAT[user_id]
        await message.reply("❌ تغییر متن چیت سیپی لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_GAMING_SERVER:
        del AWAITING_GAMING_SERVER[user_id]
        await message.reply("❌ تغییر متن سرور گیمینگ لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_FREE_CP:
        del AWAITING_FREE_CP[user_id]
        await message.reply("❌ تغییر متن سیپی رایگان لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_DNS:
        del AWAITING_DNS[user_id]
        await message.reply("❌ تغییر متن دی ان اس لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_FREE_ACCOUNTS:
        del AWAITING_FREE_ACCOUNTS[user_id]
        await message.reply("❌ تغییر متن اکانت رایگان لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_LEVEL_ACCOUNTS:
        del AWAITING_LEVEL_ACCOUNTS[user_id]
        await message.reply("❌ تغییر متن اکانت لول بالا لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_COMBO_40:
        del AWAITING_COMBO_40[user_id]
        await message.reply("❌ تغییر متن کمبو 40 لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_COMBO_200:
        del AWAITING_COMBO_200[user_id]
        await message.reply("❌ تغییر متن کمبو 200 لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "/cancel" and user_id in AWAITING_SAFE_ACCOUNT:
        del AWAITING_SAFE_ACCOUNT[user_id]
        await message.reply("❌ تغییر متن اکانت سیف لغو شد.")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_START:
        START_TEXT = text
        save_start_text(text)
        del AWAITING_START[user_id]
        await message.reply("✅ متن با موفقیت ثبت شد ✅")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if user_id in AWAITING_ACCOUNT:
        ACCOUNT_TEXT = text
        save_account_text(text)
        del AWAITING_ACCOUNT[user_id]
        await message.reply("✅ متن با موفقیت ثبت شد ✅")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if user_id in AWAITING_SPONSOR:
        SPONSOR_TEXT = text
        save_sponsor_text(text)
        del AWAITING_SPONSOR[user_id]
        await message.reply("✅ متن اسپناسر با موفقیت ثبت شد ✅")
        await message.reply_keypad("👑 به پنل ادمین خوش آمدید", keypad=admin_keyboard())
        return
    
    if user_id in AWAITING_CP_CHEAT:
        TEXTS["cp_cheat"] = text
        save_texts()
        del AWAITING_CP_CHEAT[user_id]
        await message.reply("✅ متن چیت سیپی با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_GAMING_SERVER:
        TEXTS["gaming_server"] = text
        save_texts()
        del AWAITING_GAMING_SERVER[user_id]
        await message.reply("✅ متن سرور گیمینگ با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_FREE_CP:
        TEXTS["free_cp"] = text
        save_texts()
        del AWAITING_FREE_CP[user_id]
        await message.reply("✅ متن سیپی رایگان با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_DNS:
        TEXTS["dns"] = text
        save_texts()
        del AWAITING_DNS[user_id]
        await message.reply("✅ متن دی ان اس با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_FREE_ACCOUNTS:
        TEXTS["free_accounts"] = text
        save_texts()
        del AWAITING_FREE_ACCOUNTS[user_id]
        await message.reply("✅ متن اکانت رایگان با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_LEVEL_ACCOUNTS:
        TEXTS["level_accounts"] = text
        save_texts()
        del AWAITING_LEVEL_ACCOUNTS[user_id]
        await message.reply("✅ متن اکانت لول بالا با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_COMBO_40:
        TEXTS["combo_40"] = text
        save_texts()
        del AWAITING_COMBO_40[user_id]
        await message.reply("✅ متن کمبو 40 با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_COMBO_200:
        TEXTS["combo_200"] = text
        save_texts()
        del AWAITING_COMBO_200[user_id]
        await message.reply("✅ متن کمبو 200 با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if user_id in AWAITING_SAFE_ACCOUNT:
        TEXTS["safe_account"] = text
        save_texts()
        del AWAITING_SAFE_ACCOUNT[user_id]
        await message.reply("✅ متن اکانت سیف با موفقیت ثبت شد ✅")
        await message.reply_keypad("📝 بخش تغییرات متن:", keypad=change_texts_keyboard())
        return
    
    if text == "دریافت اکانت امروز❤️‍🔥":
        random_image = random.choice(IMAGES)
        await bot.send_image(
            chat_id=message.chat_id,
            path=random_image,
            text="اکانت رایگان امروز شما 🔥❤️\nبرای دریافت روی دکمه زیر کلیک کنید",
            chat_keypad=account_keyboard(),
            chat_keypad_type="New"
        )
        return
    
    if text == "دریافت اکانت 💣":
        await message.reply(SPONSOR_TEXT)
        await message.reply_keypad("لطفاً عضویت خود را بررسی کنید:", keypad=membership_keyboard())
        return
    
    if text == "بررسی عضویت ✨":
        if user_id not in MEMBERSHIP_STATUS:
            MEMBERSHIP_STATUS[user_id] = 0
        
        if MEMBERSHIP_STATUS[user_id] == 0:
            await message.reply("<b>درحال بررسی عضویت . . . ⚡</b>", parse_mode="HTML")
            await asyncio.sleep(1)
            await message.reply("<b>عضو لینک ها نیستید ❌👆🏻 لطفاً در همه کانال ها عضو شوید</b>", parse_mode="HTML")
            MEMBERSHIP_STATUS[user_id] = 1
        elif MEMBERSHIP_STATUS[user_id] == 1:
            await message.reply(f"<b>{ACCOUNT_TEXT}</b>", parse_mode="HTML")
            await message.reply_keypad(
                "تبریک اکانت شما تحویل داده شد حالا میتونید از قابلیت های دیگه ربات استفاده کنید \nدریافت از 80 سیپی تا 880 سیپی و اکانت های رایگان با استفاده از ربات ✅",
                keypad=menu_keyboard()
            )
            MEMBERSHIP_STATUS[user_id] = 2
        else:
            await message.reply(f"<b>{ACCOUNT_TEXT}</b>", parse_mode="HTML")
            await message.reply_keypad(
                "تبریک اکانت شما تحویل داده شد حالا میتونید از قابلیت های دیگه ربات استفاده کنید \nدریافت از 80 سیپی تا 880 سیپی و اکانت های رایگان با استفاده از ربات ✅",
                keypad=menu_keyboard()
            )
        return
    
    if text == "👨‍💻 سازنده ربات":
        await bot.send_image(
            chat_id=message.chat_id,
            path="https://cdn.imgurl.ir/uploads/q283141_ChatGPT_Image______.png",
            text="کانال ربات ساز @BOT_ROBIKA85\nآیدی جهت خرید و مشاوره @MY_LUIZ_IR\n❌ فقط جهت خرید و مشاوره پیام بدید به سازنده ❌"
        )
        return
    
    if text == "🎮 سرور گیمینگ":
        await message.reply(TEXTS["gaming_server"])
        return
    
    if text == "⚡ چیت سیپی":
        await message.reply(TEXTS["cp_cheat"])
        return
    
    if text == "🎁 سیپی رایگان":
        await message.reply(TEXTS["free_cp"])
        return
    
    if text == "🌐 دی ان اس اختصاصی":
        await message.reply(TEXTS["dns"])
        return
    
    if text == "📋 لیست اکانت رایگان":
        await message.reply(TEXTS["free_accounts"])
        return
    
    if text == "⭐ اکانت لول بالا":
        await message.reply(TEXTS["level_accounts"])
        return
    
    if text == "🔹 کمبو 40 تایی":
        await message.reply(TEXTS["combo_40"])
        return
    
    if text == "🔸 کمبو 200 تایی":
        await message.reply(TEXTS["combo_200"])
        return
    
    if text == "🔐 اکانت سیف":
        await message.reply(TEXTS["safe_account"])
        return

if __name__ == "__main__":
    asyncio.run(bot.run())