import telegram
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler
from telegram import InlineKeyboardButton, InlineKeyboardMarkup

TOKEN = '8934035952:AAEBgBf4lrdsEWtAnro-VcdgJ-CRTwkOZNE'
CHANNEL_ID = '@mtasamarket'
GAP_ID = '@mtasamarketgap'
GAME_URL = "https://mtamarket.ir/game.html"

def check_membership(bot, user_id):
    try:
        member_channel = bot.get_chat_member(CHANNEL_ID, user_id)
        member_gap = bot.get_chat_member(GAP_ID, user_id)

        allowed = ['member', 'administrator', 'creator']
        if member_channel.status in allowed and member_gap.status in allowed:
            return True
    except Exception as e:
        print("Membership error:", e)
    return False

def start(update, context):
    user_id = update.message.from_user.id

    if check_membership(context.bot, user_id):
        # چون WebAppInfo در نسخه 12.8 وجود ندارد → لینک مستقیم می‌دهیم
        update.message.reply_text(
            "✅ عضویت تأیید شد!\n"
            "برای ورود به بازی روی لینک زیر بزن:\n\n"
            f"{GAME_URL}"
        )
    else:
        buttons = [
            [InlineKeyboardButton("عضویت در کانال", url=f"https://t.me/{CHANNEL_ID[1:]}")],
            [InlineKeyboardButton("عضویت در گروه", url=f"https://t.me/{GAP_ID[1:]}")],
            [InlineKeyboardButton("🔄 بررسی عضویت", callback_data="check_again")]
        ]
        reply_markup = InlineKeyboardMarkup(buttons)
        update.message.reply_text(
            "⚠️ برای استفاده از ربات باید در کانال و گروه عضو باشید.",
            reply_markup=reply_markup
        )

def button_handler(update, context):
    query = update.callback_query
    user_id = query.from_user.id

    if query.data == "check_again":
        if check_membership(context.bot, user_id):
            query.edit_message_text("✅ عضویت تأیید شد! دستور /start را دوباره بزن.")
        else:
            query.answer("❌ هنوز عضو نیستی!", show_alert=True)

def main():
    updater = Updater(TOKEN, use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CallbackQueryHandler(button_handler))

    print("Bot is running...")
    updater.start_polling()
    updater.idle()

if __name__ == "__main__":
    main()
