import json import subprocess from telegram import Update, ReplyKeyboardMarkup from telegram.ext import Application, CommandHandler, MessageHandler, filters, CallbackContext TOKEN = "توکن_ربات_اینجا" ADMIN_ID = 123456789 # آی‌دی عددی شما USERS_FILE = "users.json" PROXY_FILE = "proxies.txt" # بارگذاری کاربران از فایل JSON def load_users(): try: with open(USERS_FILE, "r") as f: return json.load(f) except FileNotFoundError: return {} # ذخیره کاربران در فایل JSON def save_users(users): with open(USERS_FILE, "w") as f: json.dump(users, f, indent=4) # لیست کاربران users = load_users() # فرمان /start async def start(update: Update, context: CallbackContext) -> None: user_id = str(update.effective_user.id) # اگر کاربر جدید است، اضافه شود if user_id not in users: users[user_id] = {"views_used": 0, "vip": False} save_users(users) # دکمه‌های ربات keyboard = [ ["🎥 ارسال لینک ویدیو"], ["🛠 افزودن پراکسی", "📊 وضعیت حساب"], ["ℹ️ درباره ربات"] ] if user_id == str(ADMIN_ID): keyboard.append(["🔑 مدیریت کاربران"]) reply_markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True) await update.message.reply_text("سلام! به ربات افزایش بازدید یوتیوب خوش آمدی.", reply_markup=reply_markup) # دریافت لینک و اجرا async def get_video(update: Update, context: CallbackContext) -> None: user_id = str(update.effective_user.id) if user_id not in users: await update.message.reply_text("لطفاً ابتدا /start را بزنید.") return if not users[user_id]["vip"] and users[user_id]["views_used"] >= 100: await update.message.reply_text("❌ شما به سقف ۱۰۰ بازدید در روز رسیده‌اید. برای دسترسی نامحدود با ادمین تماس بگیرید.") return video_url = update.message.text await update.message.reply_text(f"⏳ در حال افزایش بازدید برای: {video_url}") try: subprocess.run(["python", "main.py", "--url", video_url], check=True) users[user_id]["views_used"] += 1 save_users(users) await update.message.reply_text("✅ بازدیدها اضافه شدند!") except Exception as e: await update.message.reply_text(f"❌ خطا در اجرای اسکریپت: {str(e)}") # افزودن پراکسی از ربات async def add_proxy(update: Update, context: CallbackContext) -> None: user_id = str(update.effective_user.id) if user_id not in users: await update.message.reply_text("لطفاً ابتدا /start را بزنید.") return proxy = update.message.text with open(PROXY_FILE, "a") as f: f.write(proxy + "\n") await update.message.reply_text("✅ پراکسی با موفقیت اضافه شد.") # مشاهده وضعیت حساب async def account_status(update: Update, context: CallbackContext) -> None: user_id = str(update.effective_user.id) if user_id not in users: await update.message.reply_text("لطفاً ابتدا /start را بزنید.") return views_used = users[user_id]["views_used"] vip_status = "✅ فعال (نامحدود)" if users[user_id]["vip"] else "❌ غیرفعال" await update.message.reply_text(f"📊 **وضعیت حساب شما:**\n🔹 بازدیدهای استفاده‌شده: {views_used}/100\n🔹 حساب VIP: {vip_status}") # درباره ربات async def about(update: Update, context: CallbackContext) -> None: await update.message.reply_text("🚀 این ربات برای افزایش بازدید یوتیوب ساخته شده است.\n\n🔹 توسعه‌دهنده: @YourUsername") # پنل مدیریت کاربران async def manage_users(update: Update, context: CallbackContext) -> None: user_id = str(update.effective_user.id) if user_id != str(ADMIN_ID): await update.message.reply_text("❌ شما به این بخش دسترسی ندارید.") return user_list = "\n".join([f"👤 {uid} - {'VIP' if users[uid]['vip'] else 'عادی'}" for uid in users]) await update.message.reply_text(f"📋 لیست کاربران:\n{user_list}\n\nبرای ویژه کردن حساب یک کاربر، `/vip user_id` را بفرستید.") # ویژه کردن کاربر async def make_vip(update: Update, context: CallbackContext) -> None: user_id = str(update.effective_user.id) if user_id != str(ADMIN_ID): await update.message.reply_text("❌ شما به این بخش دسترسی ندارید.") return try: target_id = context.args[0] if target_id in users: users[target_id]["vip"] = True save_users(users) await update.message.reply_text(f"✅ کاربر {target_id} اکنون VIP شد!") else: await update.message.reply_text("❌ کاربر یافت نشد.") except IndexError: await update.message.reply_text("❌ لطفاً `user_id` را وارد کنید.") # ساخت اپلیکیشن app = Application.builder().token(TOKEN).build() # اضافه کردن هندلرها app.add_handler(CommandHandler("start", start)) app.add_handler(MessageHandler(filters.Regex("🎥 ارسال لینک ویدیو"), get_video)) app.add_handler(MessageHandler(filters.Regex("🛠 افزودن پراکسی"), add_proxy)) app.add_handler(MessageHandler(filters.Regex("📊 وضعیت حساب"), account_status)) app.add_handler(MessageHandler(filters.Regex("ℹ️ درباره ربات"), about)) app.add_handler(MessageHandler(filters.Regex("🔑 مدیریت کاربران"), manage_users)) app.add_handler(CommandHandler("vip", make_vip)) # اجرای ربات app.run_polling()