fork download
  1.  
Success #stdin #stdout 0.09s 14120KB
stdin
import random
import string
import re
import time
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# ---- توابع کمکی ---- #
def generate_random_username(length=8):
    return ''.join(random.choice(string.ascii_lowercase) for _ in range(length))

def generate_random_password(length=12):
    chars = string.ascii_letters + string.digits + "!@#$%"
    return ''.join(random.choice(chars) for _ in range(length))

# ---- ایجاد ایمیل موقت ---- #
def create_temp_email():
    try:
        # ساخت آدرس ایمیل تصادفی
        domain = "mail.tm"
        local_part = generate_random_username()
        email = f"{local_part}@{domain}"
        
        # ایجاد حساب ایمیل
        response = requests.post(
            "https://a...content-available-to-author-only...l.tm/accounts",
            json={"address": email, "password": "TempPass123!"}
        )
        return email, "TempPass123!"
    except Exception as e:
        print(f"خطا در ایجاد ایمیل: {e}")
        return None, None

# ---- دریافت کد تایید ---- #
def get_verification_code(email, email_password):
    try:
        # دریافت توکن دسترسی
        token_response = requests.post(
            "https://a...content-available-to-author-only...l.tm/token",
            json={"address": email, "password": email_password}
        )
        token = token_response.json().get("token")
        
        # دریافت ایمیل‌ها
        headers = {"Authorization": f"Bearer {token}"}
        timeout = time.time() + 60  # 1 دقیقه انتظار
        
        while time.time() < timeout:
            messages_response = requests.get(
                "https://a...content-available-to-author-only...l.tm/messages",
                headers=headers
            )
            messages = messages_response.json().get("hydra:member", [])
            
            for msg in messages:
                if "Instagram" in msg.get("subject", ""):
                    code = re.search(r'\d{6}', msg.get("text", "")).group()
                    return code
            time.sleep(5)
        return None
    except Exception as e:
        print(f"خطا در دریافت کد: {e}")
        return None

# ---- اتوماسیون اینستاگرام ---- #
def create_instagram_account():
    driver = webdriver.Chrome()
    try:
        # باز کردن صفحه ثبت‌نام
        driver.get("https://w...content-available-to-author-only...m.com/accounts/emailsignup/")
        
        # تولید اطلاعات
        email, email_pass = create_temp_email()
        username = generate_random_username()
        password = generate_random_password()
        
        # پر کردن فرم
        WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.NAME, "emailOrPhone"))
        ).send_keys(email)
        
        driver.find_element(By.NAME, "fullName").send_keys("Test User")
        driver.find_element(By.NAME, "username").send_keys(username)
        driver.find_element(By.NAME, "password").send_keys(password)
        driver.find_element(By.XPATH, "//button[text()='Sign up']").click()
        
        # دریافت کد تایید
        code = get_verification_code(email, email_pass)
        if not code:
            raise Exception("کد تایید یافت نشد.")
        
        # وارد کردن کد
        WebDriverWait(driver, 20).until(
            EC.presence_of_element_located((By.NAME, "email_confirmation_code"))
        ).send_keys(code)
        
        driver.find_element(By.XPATH, "//button[text()='Confirm']").click()
        
        # نمایش نتیجه
        print("\n--- اکانت ایجاد شد ---")
        print(f"Username: {username}")
        print(f"Password: {password}")
        print(f"Email: {email}")
        
    except Exception as e:
        print(f"خطا: {e}")
    finally:
        driver.quit()

# ---- اجرای برنامه ---- #
if __name__ == "__main__":
    create_instagram_account()
stdout
Standard output is empty