aW1wb3J0IHJhbmRvbQppbXBvcnQgc3RyaW5nCmltcG9ydCByZQppbXBvcnQgdGltZQppbXBvcnQgcmVxdWVzdHMKZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCmZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBvcnQgV2ViRHJpdmVyV2FpdApmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCgojIC0tLS0g2KrZiNin2KjYuSDaqdmF2qnbjCAtLS0tICMKZGVmIGdlbmVyYXRlX3JhbmRvbV91c2VybmFtZShsZW5ndGg9OCk6CiAgICByZXR1cm4gJycuam9pbihyYW5kb20uY2hvaWNlKHN0cmluZy5hc2NpaV9sb3dlcmNhc2UpIGZvciBfIGluIHJhbmdlKGxlbmd0aCkpCgpkZWYgZ2VuZXJhdGVfcmFuZG9tX3Bhc3N3b3JkKGxlbmd0aD0xMik6CiAgICBjaGFycyA9IHN0cmluZy5hc2NpaV9sZXR0ZXJzICsgc3RyaW5nLmRpZ2l0cyArICZxdW90OyFAIyQlJnF1b3Q7CiAgICByZXR1cm4gJycuam9pbihyYW5kb20uY2hvaWNlKGNoYXJzKSBmb3IgXyBpbiByYW5nZShsZW5ndGgpKQoKIyAtLS0tINin24zYrNin2K8g2KfbjNmF24zZhCDZhdmI2YLYqiAtLS0tICMKZGVmIGNyZWF0ZV90ZW1wX2VtYWlsKCk6CiAgICB0cnk6CiAgICAgICAgIyDYs9in2K7YqiDYotiv2LHYsyDYp9uM2YXbjNmEINiq2LXYp9iv2YHbjAogICAgICAgIGRvbWFpbiA9ICZxdW90O21haWwudG0mcXVvdDsKICAgICAgICBsb2NhbF9wYXJ0ID0gZ2VuZXJhdGVfcmFuZG9tX3VzZXJuYW1lKCkKICAgICAgICBlbWFpbCA9IGYmcXVvdDt7bG9jYWxfcGFydH1Ae2RvbWFpbn0mcXVvdDsKICAgICAgICAKICAgICAgICAjINin24zYrNin2K8g2K3Ys9in2Kgg2KfbjNmF24zZhAogICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMucG9zdCgKICAgICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5sLnRtL2FjY291bnRzJnF1b3Q7LAogICAgICAgICAgICBqc29uPXsmcXVvdDthZGRyZXNzJnF1b3Q7OiBlbWFpbCwgJnF1b3Q7cGFzc3dvcmQmcXVvdDs6ICZxdW90O1RlbXBQYXNzMTIzISZxdW90O30KICAgICAgICApCiAgICAgICAgcmV0dXJuIGVtYWlsLCAmcXVvdDtUZW1wUGFzczEyMyEmcXVvdDsKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludChmJnF1b3Q72K7Yt9inINiv2LEg2KfbjNis2KfYryDYp9uM2YXbjNmEOiB7ZX0mcXVvdDspCiAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKCiMgLS0tLSDYr9ix24zYp9mB2Kog2qnYryDYqtin24zbjNivIC0tLS0gIwpkZWYgZ2V0X3ZlcmlmaWNhdGlvbl9jb2RlKGVtYWlsLCBlbWFpbF9wYXNzd29yZCk6CiAgICB0cnk6CiAgICAgICAgIyDYr9ix24zYp9mB2Kog2KrZiNqp2YYg2K/Ys9iq2LHYs9uMCiAgICAgICAgdG9rZW5fcmVzcG9uc2UgPSByZXF1ZXN0cy5wb3N0KAogICAgICAgICAgICAmcXVvdDtodHRwczovL2EuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmwudG0vdG9rZW4mcXVvdDssCiAgICAgICAgICAgIGpzb249eyZxdW90O2FkZHJlc3MmcXVvdDs6IGVtYWlsLCAmcXVvdDtwYXNzd29yZCZxdW90OzogZW1haWxfcGFzc3dvcmR9CiAgICAgICAgKQogICAgICAgIHRva2VuID0gdG9rZW5fcmVzcG9uc2UuanNvbigpLmdldCgmcXVvdDt0b2tlbiZxdW90OykKICAgICAgICAKICAgICAgICAjINiv2LHbjNin2YHYqiDYp9uM2YXbjNmEJnp3bmo72YfYpwogICAgICAgIGhlYWRlcnMgPSB7JnF1b3Q7QXV0aG9yaXphdGlvbiZxdW90OzogZiZxdW90O0JlYXJlciB7dG9rZW59JnF1b3Q7fQogICAgICAgIHRpbWVvdXQgPSB0aW1lLnRpbWUoKSArIDYwICAjIDEg2K/ZgtuM2YLZhyDYp9mG2KrYuNin2LEKICAgICAgICAKICAgICAgICB3aGlsZSB0aW1lLnRpbWUoKSAmbHQ7IHRpbWVvdXQ6CiAgICAgICAgICAgIG1lc3NhZ2VzX3Jlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KAogICAgICAgICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5sLnRtL21lc3NhZ2VzJnF1b3Q7LAogICAgICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJzCiAgICAgICAgICAgICkKICAgICAgICAgICAgbWVzc2FnZXMgPSBtZXNzYWdlc19yZXNwb25zZS5qc29uKCkuZ2V0KCZxdW90O2h5ZHJhOm1lbWJlciZxdW90OywgW10pCiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgbXNnIGluIG1lc3NhZ2VzOgogICAgICAgICAgICAgICAgaWYgJnF1b3Q7SW5zdGFncmFtJnF1b3Q7IGluIG1zZy5nZXQoJnF1b3Q7c3ViamVjdCZxdW90OywgJnF1b3Q7JnF1b3Q7KToKICAgICAgICAgICAgICAgICAgICBjb2RlID0gcmUuc2VhcmNoKHInXGR7Nn0nLCBtc2cuZ2V0KCZxdW90O3RleHQmcXVvdDssICZxdW90OyZxdW90OykpLmdyb3VwKCkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29kZQogICAgICAgICAgICB0aW1lLnNsZWVwKDUpCiAgICAgICAgcmV0dXJuIE5vbmUKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludChmJnF1b3Q72K7Yt9inINiv2LEg2K/YsduM2KfZgdiqINqp2K86IHtlfSZxdW90OykKICAgICAgICByZXR1cm4gTm9uZQoKIyAtLS0tINin2KrZiNmF2KfYs9uM2YjZhiDYp9uM2YbYs9iq2Kfar9ix2KfZhSAtLS0tICMKZGVmIGNyZWF0ZV9pbnN0YWdyYW1fYWNjb3VudCgpOgogICAgZHJpdmVyID0gd2ViZHJpdmVyLkNocm9tZSgpCiAgICB0cnk6CiAgICAgICAgIyDYqNin2LIg2qnYsdiv2YYg2LXZgdit2Ycg2KvYqNiqJnp3bmo72YbYp9mFCiAgICAgICAgZHJpdmVyLmdldCgmcXVvdDtodHRwczovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm0uY29tL2FjY291bnRzL2VtYWlsc2lnbnVwLyZxdW90OykKICAgICAgICAKICAgICAgICAjINiq2YjZhNuM2K8g2KfYt9mE2KfYudin2KoKICAgICAgICBlbWFpbCwgZW1haWxfcGFzcyA9IGNyZWF0ZV90ZW1wX2VtYWlsKCkKICAgICAgICB1c2VybmFtZSA9IGdlbmVyYXRlX3JhbmRvbV91c2VybmFtZSgpCiAgICAgICAgcGFzc3dvcmQgPSBnZW5lcmF0ZV9yYW5kb21fcGFzc3dvcmQoKQogICAgICAgIAogICAgICAgICMg2b7YsSDaqdix2K/ZhiDZgdix2YUKICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMTApLnVudGlsKAogICAgICAgICAgICBFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5Lk5BTUUsICZxdW90O2VtYWlsT3JQaG9uZSZxdW90OykpCiAgICAgICAgKS5zZW5kX2tleXMoZW1haWwpCiAgICAgICAgCiAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAmcXVvdDtmdWxsTmFtZSZxdW90Oykuc2VuZF9rZXlzKCZxdW90O1Rlc3QgVXNlciZxdW90OykKICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICZxdW90O3VzZXJuYW1lJnF1b3Q7KS5zZW5kX2tleXModXNlcm5hbWUpCiAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAmcXVvdDtwYXNzd29yZCZxdW90Oykuc2VuZF9rZXlzKHBhc3N3b3JkKQogICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICZxdW90Oy8vYnV0dG9uW3RleHQoKT0nU2lnbiB1cCddJnF1b3Q7KS5jbGljaygpCiAgICAgICAgCiAgICAgICAgIyDYr9ix24zYp9mB2Kog2qnYryDYqtin24zbjNivCiAgICAgICAgY29kZSA9IGdldF92ZXJpZmljYXRpb25fY29kZShlbWFpbCwgZW1haWxfcGFzcykKICAgICAgICBpZiBub3QgY29kZToKICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCZxdW90O9qp2K8g2KrYp9uM24zYryDbjNin2YHYqiDZhti02K8uJnF1b3Q7KQogICAgICAgIAogICAgICAgICMg2YjYp9ix2K8g2qnYsdiv2YYg2qnYrwogICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAyMCkudW50aWwoCiAgICAgICAgICAgIEVDLnByZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuTkFNRSwgJnF1b3Q7ZW1haWxfY29uZmlybWF0aW9uX2NvZGUmcXVvdDspKQogICAgICAgICkuc2VuZF9rZXlzKGNvZGUpCiAgICAgICAgCiAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgJnF1b3Q7Ly9idXR0b25bdGV4dCgpPSdDb25maXJtJ10mcXVvdDspLmNsaWNrKCkKICAgICAgICAKICAgICAgICAjINmG2YXYp9uM2LQg2YbYqtuM2KzZhwogICAgICAgIHByaW50KCZxdW90O1xuLS0tINin2qnYp9mG2Kog2KfbjNis2KfYryDYtNivIC0tLSZxdW90OykKICAgICAgICBwcmludChmJnF1b3Q7VXNlcm5hbWU6IHt1c2VybmFtZX0mcXVvdDspCiAgICAgICAgcHJpbnQoZiZxdW90O1Bhc3N3b3JkOiB7cGFzc3dvcmR9JnF1b3Q7KQogICAgICAgIHByaW50KGYmcXVvdDtFbWFpbDoge2VtYWlsfSZxdW90OykKICAgICAgICAKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludChmJnF1b3Q72K7Yt9inOiB7ZX0mcXVvdDspCiAgICBmaW5hbGx5OgogICAgICAgIGRyaXZlci5xdWl0KCkKCiMgLS0tLSDYp9is2LHYp9uMINio2LHZhtin2YXZhyAtLS0tICMKaWYgX19uYW1lX18gPT0gJnF1b3Q7X19tYWluX18mcXVvdDs6CiAgICBjcmVhdGVfaW5zdGFncmFtX2FjY291bnQoKQ==
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()