Files
ea_shadow/main.py
2025-10-13 11:10:55 +00:00

3568 lines
143 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pyautogui,os,time,subprocess,random,pyotp,re,pyperclip
import cv2##
import numpy as np
from pyzbar.pyzbar import decode
import os#test y
import pandas as pd
import requests
import random
import string
import random
import string
from time import *
import os,re
import shutil
import json
from seleniumbase import Driver
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
from datetime import datetime
from selenium.webdriver.common.keys import Keys
from time import sleep
import pyautogui
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import random
import random
import string,multiprocessing
import pyotp
import time
import os
import pytz
from datetime import datetime
import subprocess
import os
import openpyxl
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
from selenium.webdriver.common.action_chains import ActionChains
import pyotp
import os
import psycopg2
from psycopg2.pool import SimpleConnectionPool
from psycopg2 import OperationalError
from typing import List, Optional
from datetime import datetime
import json
import time
import logging
from pickle import FALSE
from time import sleep
from bs4 import BeautifulSoup
import requests
tehran = pytz.timezone('Asia/Tehran')
tehran_time = datetime.now(tehran)
import json,random
import os,sys
import requests
from dotenv import load_dotenv, dotenv_values
load_dotenv()
from datetime import datetime
import pytz
import pandas as pd
import psycopg2
import time
from typing import List, Optional
import logging
import json
from datetime import datetime
import os
from dotenv import load_dotenv
import psycopg2
import time
from typing import List, Optional
import logging
import json
from datetime import datetime
import os
def get_tehran_time():
tehran_tz = pytz.timezone('Asia/Tehran')
tehran_time = datetime.now(tehran_tz)
return tehran_time.strftime('%Y-%m-%d %H:%M:%S')
# استفاده از تابعf
print(get_tehran_time())
import psutil
def kill_tor_browser():
# جستجو برای پروسه‌های با نام "tor" یا "firefox" (چون Tor معمولاً روی Firefox اجرا میشه)
for proc in psutil.process_iter(['pid', 'name']):
try:
# اگر نام پروسه "tor" یا "firefox" باشه، اون رو می‌بندیم
if 'tor' in proc.info['name'].lower() or 'firefox' in proc.info['name'].lower():
print(f"پیدا شد: {proc.info['name']} (PID: {proc.info['pid']})")
proc.kill() # بستن پروسه
print(f"پروسه با PID {proc.info['pid']} بسته شد.")
else:
pass
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass # اگر دسترسی نداریم یا پروسه دیگه‌ای از بین رفته باشه، نادیده می‌گیریم
print("تمام پروسه‌های مرتبط با تور بررسی شدند.")
file_data={}
class EmailGroupManager:
def __init__(self, db_config: dict, log_file='logs/email_service.log'):
self.db_config = db_config
self.pool = None
self.connect()
def connect(self):
while True:
try:
self.pool = SimpleConnectionPool(minconn=1, maxconn=10, **self.db_config)
if self.pool:
print("اتصال به دیتابیس (با Pool) برقرار شد")
break
except Exception as e:
print(f"اتصال به دیتابیس ناموفق بود: {e} تلاش مجدد در ۵ ثانیه...")
time.sleep(5)
def get_connection(self):
try:
conn = self.pool.getconn()
with conn.cursor() as cur:
cur.execute("SELECT 1")
return conn
except Exception as e:
print(f"[get_connection] خطا در گرفتن کانکشن اول: {e}")
self.connect()
for i in range(3): # سه بار سعی مجدد
try:
conn = self.pool.getconn()
with conn.cursor() as cur:
cur.execute("SELECT 1")
return conn
except Exception as e:
print(f"[get_connection] تلاش مجدد #{i+1} برای گرفتن کانکشن: {e}")
time.sleep(5)
print("[get_connection] سه بار تلاش کردیم ولی نشد. دیتابیس در دسترس نیست.")
raise Exception("اتصال به دیتابیس ممکن نیست")
def release_connection(self, conn):
if conn:
self.pool.putconn(conn)
def get_open_groups_1(self, server_name: str):
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
SELECT * FROM ea_shadow_tactics
WHERE server_name = %s
AND (is_finished IS NULL OR is_finished IS DISTINCT FROM TRUE)
AND (login_status = TRUE OR login_status IS NULL)
AND group_id IS NOT NULL
""", (server_name,))
return cur.fetchall()
finally:
self.release_connection(conn)
def has_open_group(self, server_name: str) -> bool:
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
SELECT COUNT(*) FROM ea_shadow_tactics
WHERE server_name = %s
AND (is_finished IS DISTINCT FROM TRUE AND login_status IS DISTINCT FROM FALSE)
AND group_id IS NOT NULL
""", (server_name,))
return cur.fetchone()[0] > 0
finally:
self.release_connection(conn)
def get_next_group_id(self, server_name: str) -> int:
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
SELECT COALESCE(MAX(group_id), 0) + 1 FROM ea_shadow_tactics
WHERE server_name = %s
""", (server_name,))
return cur.fetchone()[0]
finally:
self.release_connection(conn)
def set_taken_at(self, email_id: int):
conn = self.get_connection()
tehran_time = datetime.now(tehran)
tehran_tz = pytz.timezone('Asia/Tehran')
tehran_time = datetime.now(tehran_tz).replace(tzinfo=None)
try:
with conn.cursor() as cur:
cur.execute("""
UPDATE ea_shadow_tactics
SET taken_at = %s
WHERE id = %s
""", (tehran_time, email_id))
conn.commit()
print(f"taken_at ست شد برای ایمیل با id={email_id}")
finally:
self.release_connection(conn)
def assign_new_group_old(self, server_name: str, group_id: int) -> List[dict]:
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
WITH next_emails AS (
SELECT id FROM ea_shadow_tactics
WHERE
taken_at IS NULL
AND server_name IS NULL
AND (is_finished IS NULL OR is_finished IS DISTINCT FROM TRUE)
AND login_status IS DISTINCT FROM FALSE
ORDER BY id
LIMIT 5
FOR UPDATE SKIP LOCKED
)
UPDATE ea_shadow_tactics
SET taken_at = NOW(),
server_name = %s,
group_id = %s
WHERE id IN (SELECT id FROM next_emails)
RETURNING id, email, email_password, back_up_mail, seler_name, group_id
""", (server_name, group_id))
rows = cur.fetchall()
conn.commit()
return [
{
"id": row[0],
"email": row[1],
"email_password": row[2],
"back_up_mail": row[3],
"seler_name": row[4],
"group_id": row[5]
} for row in rows
]
finally:
self.release_connection(conn)
def assign_new_group(self, server_name: str, group_id: int) -> List[dict]:
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
WITH next_emails AS (
SELECT id FROM ea_shadow_tactics
WHERE
taken_at IS NULL
AND server_name IS NULL
AND (is_finished IS NULL OR is_finished IS DISTINCT FROM TRUE)
AND login_status IS DISTINCT FROM FALSE
ORDER BY id
LIMIT 5
FOR UPDATE SKIP LOCKED
)
UPDATE ea_shadow_tactics
SET
server_name = %s,
group_id = %s
WHERE id IN (SELECT id FROM next_emails)
RETURNING id, email, email_password, back_up_mail, seler_name, group_id
""", (server_name, group_id))
rows = cur.fetchall()
conn.commit()
return [
{
"id": row[0],
"email": row[1],
"email_password": row[2],
"back_up_mail": row[3],
"seler_name": row[4],
"group_id": row[5]
} for row in rows
]
finally:
self.release_connection(conn)
def get_group(self, server_name: str) -> List[dict]:
try:
if self.has_open_group(server_name):
print(f"سرور {server_name} هنوز گروه قبلی را کامل نکرده است")
return []
group_id = self.get_next_group_id(server_name)
group = self.assign_new_group(server_name, group_id)
if not group:
print(f"برای سرور {server_name} دیتایی برای تخصیص یافت نشد")
else:
print(f"گروه جدید برای {server_name} ثبت شد. group_id={group_id}")
return group
except Exception as e:
print(f"خطا در دریافت گروه برای {server_name}: {e}")
return []
def update_login_status(self, email_id: int, success: bool, error_message: Optional[str] = None):
conn = self.get_connection()
try:
with conn.cursor() as cur:
if success:
cur.execute("""
UPDATE ea_shadow_tactics
SET login_status = TRUE, error_message = NULL
WHERE id = %s
""", (email_id,))
print(f"ایمیل با id={email_id} با موفقیت لاگین شد.")
else:
cur.execute("""
UPDATE ea_shadow_tactics
SET login_status = FALSE, error_message = %s
WHERE id = %s
""", (error_message, email_id))
print(f"ایمیل با id={email_id} لاگین ناموفق داشت. پیام خطا: {error_message}")
conn.commit()
finally:
self.release_connection(conn)
def append_to_history(self, email_id: int, message: str):
conn = self.get_connection()
try:
with conn.cursor() as cur:
timestamp = datetime.utcnow().isoformat()
cur.execute("""
UPDATE ea_shadow_tactics
SET history = COALESCE(history, '{}'::jsonb) || %s::jsonb
WHERE id = %s
""", (json.dumps({timestamp: message}), email_id))
conn.commit()
print(f"history آپدیت شد برای ایمیل id={email_id}")
finally:
self.release_connection(conn)
def mark_email_finished(self, email_id: int, success: bool, backup_code: Optional[str] = None):
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
UPDATE ea_shadow_tactics
SET is_finished = TRUE,
finished_at = NOW(),
login_status = %s,
backup_code = %s
WHERE id = %s
""", (success, backup_code, email_id))
conn.commit()
print(f"ایمیل با id={email_id} با وضعیت login_status={success} فینیش شد.")
finally:
self.release_connection(conn)
def mark_email_finished_nime(self, email_id: int, success: bool, backup_code: Optional[str] = None):
conn = self.get_connection()
try:
with conn.cursor() as cur:
cur.execute("""
UPDATE ea_shadow_tactics
SET is_finished = TRUE,
finished_at = NOW(),
login_status = %s,
backup_code = %s
WHERE id = %s
""", (False, 'ea_created__app_code_nead', email_id))
conn.commit()
print(f"ایمیل با id={email_id} با وضعیت login_status={success} فینیش شد.")
finally:
self.release_connection(conn)
ip_v2ray='http://127.0.0.1:2017'
class pool():
def __init__(self) -> None:
self.MAX_IP=[]#['1','2','65',',64']
self.ip='http://127.0.0.1:2017'
#self.auto=auto
url = f'{ip_v2ray}/api/login'
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'fa-IR,fa;q=0.9,en-US;q=0.8,en;q=0.7,fr;q=0.6',
'Connection': 'keep-alive',
'Content-Type': 'application/json',
'Origin': f'{ip_v2ray}',
'Referer': f'{ip_v2ray}/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
}
data = {
'username': 'zxczxc',
'password': 'zxczxc'
}
response = requests.post(url, headers=headers, json=data, verify=False)
self.heders={'Authorization':json.loads(response.text)["data"]['token']}
def dell_all(self):
while True:
try:
ret=json.loads(requests.get(f'{self.ip}/api/touch', headers=self.heders, verify=False).text)['data']['touch']['servers']
break
except Exception as e:
print(e)
sst+=1
if sst==20:
return False
for i in range(0,len(ret)+1):
url = f'{self.ip}/api/touch'
data = {
'touches': [
{'id': i, '_type': 'server'},
]
}
#'{"touches":[{"id":1,"_type":"server"}]}'
requests.delete(url, headers=self.heders, json=data)
sleep(0.5)
while True:
try:
ret=json.loads(requests.get(f'{self.ip}/api/touch', headers=self.heders, verify=False).text)['data']['touch']['servers']
print(len(ret),'***')
if len(ret)==0:
return True
else:
self.dell_all()
#input('-------------')
except Exception as e:
print(e)
sst+=1
if sst==20:
return False
def dell(self):
url = f'{self.ip}/api/touch'
data = {
'touches': [
{'id': 1, '_type': 'server'},
]
}
requests.delete(url, headers=self.heders, json=data)
def add_config(self,url):
sst=0
while True:
try:
return requests.post(f'{self.ip}/api/import',json={"url":url},headers=self.heders).text
except Exception as e:
print(e)
sst+=1
if sst==20:
return False
def number_cont(self):
while True:
try:
url = f'{self.ip}/api/touch'
response = json.loads(requests.get(url, headers=self.heders, verify=False).text)['data']['touch']['servers']
#return response#.text
break
except Exception as e:
print(e)
pass
for i in response:
if 'ms' in i['pingLatency']:
while True:
try:
ids=i['id']
response =json.loads(requests.get('%s/api/sharingAddress?touch={"id":%s,"_type":"server"}'%(self.ip,ids), headers=self.heders, verify=False).text)['data']['sharingAddress']
print(response)
self.MAX_IP.append(response)
#return response#.text
break
except Exception as e:
print(e)
pass
#@self.MAX_IP.append(response)
else:
continue
#http://172.16.0.182:2014/api/sharingAddress?touch={"id":1,"_type":"server"}
# response = requests.get(url, headers=self.heders, verify=False) # اینجا verify=False به عنوان گزینه‌ای برای نادیده گرفتن گواهینامه SSL استفاده شده است. لطفا توجه داشته باشید که این روش امنیتی به خطر افتاده و باید به دلایل امنیتی دقت کنید.
#return response.text
def chek_config_all(self):
#url = f'{self.ip}/api/httpLatency?whiches=[{xsx}]'
# row=[]
#payload = {'whiches':[row]}
while True:
try:
ret=json.loads(requests.get(f'{self.ip}/api/touch', headers=self.heders, verify=False).text)['data']['touch']['servers']
break
except Exception as e:
print(e)
sst+=1
if sst==20:
return False
dataID = ""
for ranger in range(len(ret)):
dataID += f"%7B%22id%22:{ranger+1},%22_type%22:%22server%22,%22sub%22:null%7D,"
url = self.ip+f'/api/httpLatency?whiches=[{dataID}]'
urlss = url[0:-2]+"]"
res = requests.get(urlss,headers=self.heders).text
print(res)
return res
def chek_config(self):
sleep(2)
#url=f'{self.ip}/api/httpLatency?whiches=\[{"id":1,"_type":"server","sub":null}\]'
url = f'{self.ip}/api/httpLatency?whiches=[%7B%22id%22:1,%22_type%22:%22server%22,%22sub%22:null%7D]'
sdx=0
while True:
try:
return json.loads(requests.get(url,headers=self.heders).text)['data']['whiches'][0]['pingLatency']
except Exception as e:
print(e)
sdx+=1
if sdx==20:
return False
def selct(self):
data = {
'id': 1,
'_type': 'server',
'outbound': 'proxy'}
url = f'{self.ip}/api/connection'
while True:
try:
return requests.post(url, headers=self.heders, json=data).text
except Exception as e:
print(e)
def run_core(self):
url = f'{self.ip}/api/v2ray'
while True:
try:
return requests.post(url, headers=self.heders).text
except Exception as e:
print(e)
def stop_core(self):
url = f'{self.ip}/api/v2ray'
while True:
try:
return requests.delete(url, headers=self.heders).text
except Exception as e:
print(e)
def chek_2_1(self):
#self.dell_all()
self.dell_all()
self.dell_all()
self.dell_all()
while True:
self.dell_all()
self.dell_all()
batch_data = self.read_and_remove_batch_2()
self.dell_all()
print(len(batch_data))
print('--------')
print('--------')
print('--------')
print('--------')
print('--------')
print('--------')
print('--------')
print('--------')
#input('--------')
for ixc in batch_data:
print(ixc)
bnbs=self.add_config(str(ixc))
print(bnbs)
if bnbs==False:
self.dell_all()
continue
sleep(2)
pr=self.chek_config()
print(pr)
if pr==False:
self.dell_all()
continue
if 'ms' in pr:
print(pr,'*******')
print(self.selct())
sleep(2)
print(self.run_core())
#input('>xxxxxx>')
return True
self.dell()
def chek_2_2(self,url):
self.dell_all()
self.dell_all()
self.dell_all()
while True:
bnbs=self.add_config(str(url))
if bnbs==False:
self.dell_all()
return 'add_fail'
print('add')
break
pr=self.chek_config_all()
sleep(5)
if pr==False:
self.dell_all()
return 'chek_config_all_fail'
if 'ms' in pr:
print(pr,'*******')
print(self.selct())
sleep(2)
print(self.run_core())
#input('>xxxxxx>')
return True
return False
class ea_fucking():
def __init__(self,path_png_file):
self.path_png_file=path_png_file
def qr_code(self):
sleep(3)
pyautogui.screenshot(os.path.join(os.getcwd(),'image.png'))
image_path = "image.png" # مسیر عکس رو مشخص کن
image = cv2.imread(image_path)
# --- اسکن QR Code ---
qr_codes = decode(image)
try:os.remove("image.png")
except:pass
for qr in qr_codes:
qr_text = qr.data.decode("utf-8").split('?secret=')[1].split('&issuer=Electronic%20Arts')[0]
print("QR Code Data:", qr_text)
return qr_text
if not qr_codes:
return False
print("هیچ QR Codeای پیدا نشد!")
def top(self,secret):
secret=secret.replace(' ','',100)
totp = pyotp.TOTP(secret)
try:
while True:
# Get the current OTP
current_otp = totp.now()
# Clear the console output
#os.system('cls' if os.name == 'nt' else 'clear')
# Display the current OTP
print(f"Current OTP: {current_otp}")
return current_otp
# Show time remaining for the next OTP update (default interval is 30 seconds)
time_remaining = 30 - (int(time.time()) % 30)
print(f"Time remaining: {time_remaining} seconds")
# Wait 1 second before updating
time.sleep(1)
#input(">>")
except KeyboardInterrupt:
print("\nProcess stopped by user.")
def load_browser_windows(self,path):
# print(codex,'--------------')
print(path)
path=rf'C:\Users\{user_sys}\Desktop\Browser\firefox.exe'
subprocess.Popen([path])
time.sleep(6)
#pyautogui.press("f11")
# pyautogui.write("https://ea.com")
pyautogui.press("enter")
time.sleep(6)
pyautogui.press("enter")
return True
def get_tor(self):
pyautogui.press('enter')
pyautogui.press('enter')
# pyautogui.hotkey('ctrl', 'shift', 'n')
# pyautogui.press("f11")
time.sleep(2)
# pyautogui.write("https://ea.com")
# time.sleep(2)
#tottotttpyautogui.press("enter")
time.sleep(4)
for i in range(5):
print(os.path.join(self.path_png_file,r'1_dcuk_clik.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'1_dcuk_clik.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'1_1_dcuk_clik.PNG'), confidence=0.8)
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if location:
pyautogui.click(pyautogui.center(location))
return True
else:
print("1 تصویر مورد نظر پیدا نشد.")
return False
def disabel(self):
sleep(4)
pyautogui.write("about:config")
pyautogui.press("enter")
# about:config
for i in range(5):
print(os.path.join(self.path_png_file,r'accept.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'accept.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'accept.PNG'), confidence=0.8)
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if location:
pyautogui.click(pyautogui.center(location))
# accept.PNG
pyautogui.write("privacy.firstparty.isolate")
sleep(1)
for i in range(10):
print(os.path.join(self.path_png_file,r'true.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'True.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'true2.PNG'), confidence=0.8)
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if location:
pyautogui.click(pyautogui.center(location))
sleep(4)
pyautogui.hotkey('ctrl', 't')
sleep(2)
return True
def get_to_ea(self):
pyautogui.write("https://myaccount.ea.com/cp-ui/security/index")
pyautogui.press("enter")
time.sleep(5)
for i in range(20):
print(os.path.join(self.path_png_file,r'click_gmail.PNG'))
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_make_other_time.PNG'), confidence=0.8)
return 'ea_created__app_code_nead!!'
except:
pass
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'click_gmail.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'click_gmail.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
time.sleep(10)
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'click_gmail'
def clik_extenshen(self,get_cookes):
chek=''
for i in range(20):
print(os.path.join(self.path_png_file,r'extenshen.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'extenshen.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'extenshen.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek==True:
pass
else:
return 'extenshen'
chek2=''
for i in range(10):
print(os.path.join(self.path_png_file,r'cookes.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'cookes.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'cookes.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek2=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek2==True:
pass
else:
return 'cookes'
sleep(20)
chek3=''
for i in range(30):
print(os.path.join(self.path_png_file,r'del.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'del.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'del.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek3=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek3==True:
pass
else:
return 'del'
sleep(3)
chek4=''
for i in range(10):
print(os.path.join(self.path_png_file,r'import2.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'import2.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'import2.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek4=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(6)
continue
if chek4==True:
pass
else:
return 'import2'
chunk_size = 100 # تعداد کاراکترهایی که در هر مرحله تایپ می‌شوند
for i in range(0, len(get_cookes), chunk_size):
chunk = get_cookes[i:i + chunk_size] # گرفتن ۵۰ کاراکتر از متن
pyautogui.write(chunk) # تایپ کردن بخش مورد نظر
time.sleep(0.1) # تاخیر برای طبیعی‌تر شد
'''for ixx in get_cookes:y0MAZ24g
# pyautogui.write(ixx)'''
time.sleep(3)
# input('>>>>>>>>>>>>Sssss')
#time.sleep(4)
chek45=''
for i in range(10):
print(os.path.join(self.path_png_file,r'import2.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'import2.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'import2.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek45=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek45==True:
pass
else:
return 'import2'
time.sleep(10)
pyautogui.hotkey('ctrl', 'r')
time.sleep(10)
#input('>>>>>>>>>>>>Sssss')
time.sleep(3)
pyautogui.hotkey('ctrl', 'w')
time.sleep(3)
return True
def click_gmail(self):
sleep(5)
for i in range(20):
print(os.path.join(self.path_png_file,r'click_gmail.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'clik_fail_gmail.PNG'), confidence=0.8)
return
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'click_gmail.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'click_gmail.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'click_gmail'
def chek_logo(self):
cont=0
for i in range(15):
#fail_mail.PNG
print(os.path.join(self.path_png_file,r'ea_logo.PNG'))
try:
print('start chek')
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'fail_mail.PNG'), confidence=0.8)
if location:
return 'fail_mail'
except:
pass
try:
print('start chek')
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
if location:
return 'nime'
except:
pass
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'ea_logo.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'ea_logo.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(1)
try:
print('start chek')
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
if location:
return 'nime'
except:
pass
cont+=1
if cont>5:
return False
continue
cont+=1
if cont>5:
return False
try:
print('start chek')
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
if location:
return 'nime'
except:
pass
#import pdb;pdb.set_trace()
sleep(6)
pyautogui.press('tab')#,
sleep(1)
pyautogui.press('tab')
sleep(1)
pyautogui.press("enter")
pyautogui.press("enter")
pyautogui.press("enter")
sleep(5)
return True
def continue_page(self):
sleep(20)
for i in range(15):
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'ok_maker.PNG'), confidence=0.8)
if location:
# pyautogui.click(pyautogui.center(location))
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'ea_logo.PNG'), confidence=0.8)
print('ea_logo boadddddddddd')
except:
return 'nime'
except:
print('nime >>> ok_maker.PNG')
print(os.path.join(self.path_png_file,r'contnue_persain.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'conntinueee.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'continue_en.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(4)
continue
return 'conntinueee'
def input_PATRH(self):
sleep(5)
for i in range(15):
print(os.path.join(self.path_png_file,r'input.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'input.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'input.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'input'
def contuen_page2(self):
sleep(10)
for i in range(15):
print(os.path.join(self.path_png_file,r'contnue_persain.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'conntinueee.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'continue_en.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'contnue_persain'
def next(self):
for i in range(15):
print(os.path.join(self.path_png_file,r'next.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
except Exception as e:
time.sleep(5)
continue
#return True
def accept(self):
sleep(10)
for i in range(1,5):
print(os.path.join(self.path_png_file,r' ========= accept >>> next.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'next.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
sleep(20)
for i in range(15):
#for i in range(1,4):
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'10_accept.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
except:
print('fail >>> 10_accept.PNG')
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'10_accept_1.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
except:
print('fail >>> 10_accept_1.PNG')
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'10_accept_2.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
except:
print('fail >>> 10_accept_1.PNG')
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'ok_maker.PNG'), confidence=0.8)
if location:
# pyautogui.click(pyautogui.center(location))
return 'make_other_time'
except:
print('make_other_time >>> ok_maker.PNG')
# 10_accept
return 'fail_10_acceptt'
def creat(self):
for i in range(15):
print(os.path.join(self.path_png_file,r'11_create_account.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'11_create_account.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'11_create_account.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'fail_11_create_account'
def finsh(self):
for i in range(15):
print(os.path.join(self.path_png_file,r'13finsh13.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'13finsh13.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'13finsh13.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
time.sleep(15)
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'fail_13finsh13'
'''input('>>>>>>>>>>>>Sssss')
input('>>>>>>>>>>>>Sssss')
input('>>>>>>>>>>>>Sssss')
pyautogui.hotkey('ctrl', 't')
sleep(1)
pyautogui.write("about:config")
pyautogui.press("enter")
sleep(2)
for i in range(5):
print(os.path.join(self.path_png_file,r'accept.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'accept.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'accept.PNG'), confidence=0.8)
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(3)
continue
if location:
pyautogui.click(pyautogui.center(location))
# accept.PNG
pyautogui.write("privacy.firstparty.isolate")
sleep(1)
for i in range(10):
print(os.path.join(self.path_png_file,r'false2.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'false2.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'false.PNG'), confidence=0.8)
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if location:
pyautogui.click(pyautogui.center(location))
#extenshen.PNG
#privacy.firstparty.isolat
# e'''
def get_seting_sec_1(self):
return True
for i in range(15):
print(os.path.join(self.path_png_file,r'click_hhtt.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'click_hhtt.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'click_hhtt.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
pyautogui.hotkey('ctrl', 'a')
pyautogui.write('https://myaccount.ea.com/cp-ui/security/index')
sleep(1)
pyautogui.press("enter")
return True
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
return 'fail_click_hhtt'
# https://myaccount.ea.com/cp-ui/aboutme/index
def get_turn_on_2(self,codex,value,val2):
for i in range(4):
print(os.path.join(self.path_png_file,r'14_tron_on.PNG'))
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_make_other_time.PNG'), confidence=0.8)
return 'ea_created__app_code_nead!!'
except:
pass
for i in range(4):
print(os.path.join(self.path_png_file,r'chalenge1_find_next.PNG'))
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chalenge1_find_next.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
print(' ok >>> chalenge1_find_next')
#return 'ea_created__app_code_nead!!'
except:
print(' eror >>> chalenge1_find_next')
pass
sleep(55)
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
except:pass
codex.end()
codex=Gmail(value,val2,browser_proxy=browser_proxy)
codes=''
for isx in range(4):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'#=='Internal Server Error':return 'Internal Server Error'
for i in range(2):
try:
code=codex.get_code()#str(re.findall(pattern=r'Your EA Security Code is: \w*',string=copied_text)[0]).replace('Your EA Security Code is: ','')
if 'ALERT_to_mnay_code_chek'==code:
return 'ALERT_to_mnay_code_chek'
if code=='continue':
codex.end()
codexs=Gmail(value,val2,browser_proxy=browser_proxy)
code=codexs.get_code()
if 'ALERT_to_mnay_code_chek'==code:
return 'ALERT_to_mnay_code_chek'
if code=='continue':
continue
codes=True
codes=True
#break
#codex.end()
except:
codex.end()
codex=Gmail(value,val2,browser_proxy=browser_proxy)
print('eror')
#import pdb;pdb.set_trace()
print('break_one')
if codes==True:
pass
else:
return 'fail_get_code_new_EROR'
for i in code:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'6code_.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
except:
pass
pyautogui.write(i)
sleep(0.5)
pyautogui.press('enter')
sleep(15)
################
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_1.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_2.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_3.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_4.PNG'), confidence=0.8)
if location:
return True
except:
pass
################
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
except:pass
sleep(5)
print('start >>> chek_True_1')
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
except:pass
print('fail >>> chek_True_1')
print('start >>> chek_True_2')
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
except:pass
print('fail >>> chek_True_1')
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_eror.PNG'), confidence=0.8)
if location:
pass
else:
sleep(10)
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_eror.PNG'), confidence=0.8)
if location:
pass
else:
return True
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
sleep(2)
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_2.PNG'), confidence=0.8)
if location:
return True
except:pass
###################################
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_1.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_2.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_3.PNG'), confidence=0.8)
if location:
return True
except:pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek____true_4.PNG'), confidence=0.8)
if location:
return True
except:pass
#####################################
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
codex.end()
codex=Gmail(value,val2,browser_proxy=browser_proxy)
return 'fail_14_tron_on'
def get_send_sec_3(self):
sleep(10)
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
for i in range(10):
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'14_tron_on.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
except:
pass
for i in range(15):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
print(os.path.join(self.path_png_file,r'15_send_sec_code_app_code.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
except:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_True_1.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
except:
pass
if location:
pyautogui.click(pyautogui.center(location))
for i in range(6):
pyautogui.press('tab')
sleep(0.5)
pyautogui.press('enter')
# return True
#https://e1_1_dcuk_clik.PNG
sleep(10)
for i in range(10):
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'send_code_new.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
return True
except:
pass
except Exception as e:
time.sleep(5)
continue
return 'fail_15_send_sec_code_app_code'
# https://myaccount.ea.com/cp-ui/aboutme/index
def handel_page_and_code(self,codex,value,val2):
sleep(30)
codex.end()
codex=Gmail(value,val2,browser_proxy=browser_proxy)
codes=''
for i in range(2):
try:
code=codex.get_code()#str(re.findall(pattern=r'Your EA Security Code is: \w*',string=copied_text)[0]).replace('Your EA Security Code is: ','')
if 'ALERT_to_mnay_code_chek'==code:
return 'ALERT_to_mnay_code_chek'
if code=='continue':
codex.end()
codexs=Gmail(value,val2,browser_proxy=browser_proxy)
code=codexs.get_code()
if 'ALERT_to_mnay_code_chek'==code:
return 'ALERT_to_mnay_code_chek'
if code=='continue':
codexs.end()
continue
codes=True
codes=True
except:
codex.end()
codex=Gmail(value,val2,browser_proxy=browser_proxy)
print('eror')
#import pdb;pdb.set_trace()
if codes==True:
pass
else:
return 'fail_get_code'
chek=''
for i in range(30):
print(os.path.join(self.path_png_file,r'veryfy_idyntt.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'veryfy_idyntt.PNG'), confidence=0.8)
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'veryfy_idyntt.PNG'), confidence=0.8)
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'veryfy_idyntt.PNG'), confidence=0.8)
except:
pass
if location:
pyautogui.click(pyautogui.center(location))
for i in range(3):
pyautogui.press('tab')
sleep(0.5)
for i_code in code:
pyautogui.write(i_code)
print('handel_page_and_code mission 21 next !!!!')
pyautogui.press('tab')
pyautogui.press('enter')
sleep(5)
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_invalid_2.PNG'), confidence=0.8)
print( 'code chek_invalid_2.PNG fail continue ...')
for ix in range(4):
pyautogui.press('tab')
sleep(0.5)
pyautogui.hotkey('ctrl', 'a')
pyautogui.press('backspace')
continue
except:
pass
sleep(5)
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'invalid_chek.PNG'), confidence=0.8)
print( 'code chek_invalid_2.PNG fail continue ...')
for ix in range(4):
pyautogui.press('tab')
sleep(0.5)
pyautogui.hotkey('ctrl', 'a')
pyautogui.press('backspace')
continue
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_invalid_2.PNG'), confidence=0.8)
print( 'code chek_invalid_2.PNG fail continue ...')
for ix in range(4):
pyautogui.press('tab')
sleep(0.5)
pyautogui.hotkey('ctrl', 'a')
pyautogui.press('backspace')
continue
except:
pass
if location:
pyautogui.click(pyautogui.center(location))
sleep(5)
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'16_submit.PNG'), confidence=0.8)
print('code eror 16_submit')
pyautogui.hotkey('ctrl', 'a')
pyautogui.press('backspace')
continue
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'chek_tow_factor_1.PNG'), confidence=0.8)
chek=True
break
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'one_trn.PNG'), confidence=0.8)
chek=True
break
except:
pass
if chek==True:
break
else:
return 'faill_all_code'
except Exception as e:
time.sleep(5)
continue
if chek==True:
pass
else:
return 'input_bouten2'
sleep(10)
chek22=''
for i in range(30):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
print(os.path.join(self.path_png_file,r'one_trn.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'one_trn.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'one_trn.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek22=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
sleep(10)
if chek22==True:
pass
else:
return 'Two-factor authentication'
chek3=''
for i in range(30):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
print(os.path.join(self.path_png_file,r'17_app_authentctor.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'17_app_authentctor.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'17_app_authentctor.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek3=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
#sleep(10)
if chek3==True:
pass
else:
return '17_app_authentctor'
chek4=''
self.dicline()
for i in range(30):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
print(os.path.join(self.path_png_file,r'18_send_code.PNG.PNG.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'18_send_code.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek4=True
break
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'18_send_code.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek4=True
break
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'18_send_code_1.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek4=True
break
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'18_send_code_1.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek4=True
break
except:
pass
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek4==True:
pass
else:
return '18_send_code'
sleep(10)
chek5=''
for i in range(30):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
print(os.path.join(self.path_png_file,r'19_continue.PNG.PNG.PNG.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'19_continue.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'19_continue.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
print('handel_page_and_code mission 3 next !!!!')
chek5=True
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek5==True:
pass
else:
return '19_continue'
sleep(15)
tot=self.qr_code()
sleep(3)
totx=self.top(tot)
#import pdb;pdb.set_trace()
# ea_png/input_bouten1.PNG ea_png/input_bouten2.PNG ea_png/input_for_end.PNG
if chek5==True:
pass
else:
return 'click_code'
chek6=''
for i in range(30):
if self.dicline()=='Internal Server Error':return 'Internal Server Error'
print(os.path.join(self.path_png_file,r'komaki.PNG.PNG.PNG.PNG.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'komaki.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.write(totx)
print('handel_page_and_code mission 3 next !!!!')
chek6=True
break
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'komaki.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.write(totx)
print('handel_page_and_code mission 3 next !!!!')
chek6=True
break
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'komaki.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.write(totx)
print('handel_page_and_code mission 3 next !!!!')
chek6=True
break
except:
pass
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek6==True:
pass
else:
return 'input_bouten1'
chek7=''
#spam = pyperclip.paste()
for i in range(30):
print(os.path.join(self.path_png_file,r'20_turn_on_login.PNG.PNG.PNG.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'20_turn_on_login.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'20_turn_on_login.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek7=True
print('handel_page_and_code mission 3 next !!!!')
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek7==True:
pass
else:
return '20_turn_on_login'
time.sleep(5)
chek8=''
#spam = pyperclip.paste()
for i in range(30):
print(os.path.join(self.path_png_file,r'vew_back_up.PNG.PNG.PNG.PNG.PNG'))
try:
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'vew_back_up.PNG'), confidence=0.8)
except:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'vew_back_up.PNG'), confidence=0.8)
if location:
pyautogui.click(pyautogui.center(location))
chek8=True
print('handel_page_and_code mission 3 next !!!!')
break
#https://e1_1_dcuk_clik.PNG
except Exception as e:
time.sleep(5)
continue
if chek8==True:
pass
else:
return 'vew_back_up'
time.sleep(10)
pyautogui.hotkey('ctrl', 'a')
pyautogui.hotkey('ctrl', 'c')
time.sleep(2)
copied_text = pyperclip.paste()
pattern = r'\d+\.\d+'
codes = str(re.findall(pattern, copied_text))
#\d+\.\d+
try:
return [tot,'$$',codes]
except:
return 'tot'
def chek_by_pdb(self,name):
time.sleep(5)
return name
def dicline(self):
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'fail_ant_try_again.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
print('Internal Server Error findddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd')
return 'Internal Server Error'
except:
pass
#fail_ant_try_again.PNG
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline_2.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline_2.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
###########################################
###########################################
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline_3.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline_3_test.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
try:
location = pyautogui.locateOnScreen(os.path.join(self.path_png_file,r'decline_3_1test.PNG'), confidence=0.8)
pyautogui.click(pyautogui.center(location))
except:
pass
class Gmail:
def __init__(self, name, pasword, browser_proxy):
self.flag_exit = None
self.name = name
self.pasword = pasword
os.makedirs('profile', exist_ok=True)
os.makedirs('picher', exist_ok=True)
user_data_dir = os.path.join(os.getcwd(), 'profile', name)
if name not in os.listdir(os.path.join(os.getcwd(), 'profile')):
self.flag_exit = True
chromium_args = ["--remote-debugging-port=9222",]
if self.flag_exit is not True:
print()
print()
print()
print()
print()
print('wwwwwwwww$$$$$$$$$$$$$$$$$--window-position=--remote-debugging-port=9222')
print()
print()
print()
print()
print()
chromium_args.append("--window-position=-32000,-32000")
#if browser_proxy==None:
# print('proxy_not_set and exit',browser_proxy)
# sys.exit()
self.driver = Driver(
uc=True,
user_data_dir=user_data_dir,
chromium_arg=chromium_args
)
self.driver.get("https://accounts.google.com/servicelogin?service=mail")
def check_cookies(self):
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(5)
if 'https://mail.google.com/mail/u/0/' in self.driver.current_url:
self.driver.get('https://accounts.google.com/v3/signin/')
time.sleep(5)
if 'To help keep your account secure, Google needs to verify its you. Please sign in again to continue to Gmail.'in self.driver.page_source:
return 'help keep your account secure'
cookies = self.driver.execute_cdp_cmd("Network.getAllCookies",{})
cookies_json = json.dumps(cookies, indent=4, ensure_ascii=False)
cookies_json = cookies.get("cookies", [])
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
self.driver.execute_script("window.open('https://www.google.com', '_blank');")
time.sleep(2)
self.driver.switch_to.window(self.driver.window_handles[1])
self.driver.switch_to.window(self.driver.window_handles[0])
self.driver.switch_to.window(self.driver.window_handles[0])
if "Verify" in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}verify.png"))
return 'robot'
if "Verify it" in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}verify.png"))
return 'robot'
if 'Wrong password. Try again or click Forgot password to reset it.' in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_pasword_eror.png"))
return 'pas_eror'
if 'Confirm youre not a robot' in self.driver.page_source:
return 'robot'
return cookies_json
else:
self.driver.get("https://accounts.google.com/servicelogin?service=mail")
sleep(8)
if 'To help keep your account secure, Google needs to verify its you. Please sign in again to continue to Gmail.'in self.driver.page_source:
return 'help keep your account secure'
d=self.send_username(self.name)
sleep(8)
if 'find your Google Account'in self.driver.page_source:
return 'userx'
if 'Couldnt find your Google Account'in self.driver.page_source:
return 'userx'
if 'To help keep your account secure, Google needs to verify its you. Please sign in again to continue to Gmail.'in self.driver.page_source:
return 'help keep your account secure'
print(d)
# input('>>>>>>1')
if 'To help keep your account secure, Google needs to verify its you. Please sign in again to continue to Gmail.'in self.driver.page_source:
return 'help keep your account secure'
# @#input('>>>>>>2')
if 'To help keep your account secure, Google needs to verify its you. Please sign in again to continue to Gmail.'in self.driver.page_source:
return 'help keep your account secure'
# input('>>>>>>3')
if 'Confirm youre not a robot' in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_old.png"))
return 'robot'
# input('>>>>>>4')
if "Verify" in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}verify.png"))
return 'robot'
if "Verify it" in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}verify.png"))
return 'robot'
if 'Wrong password. Try again or click Forgot password to reset it.' in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_pasword_eror.png"))
return 'pas_eror'
if 'Confirm youre not a robot' in self.driver.page_source:
return 'robot'
sleep(8)
if 'To help keep your account secure, Google needs to verify its you. Please sign in again to continue to Gmail.'in self.driver.page_source:
return 'help keep your account secure'
# input('>>>>>>5')
if 'Confirm youre not a robot' in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_old.png"))
return 'robot'
#print(self.pasword)
#input('?????')
sleep(8)
try:
fx=self.driver.find_element(By.XPATH, "//input")
print('userx!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
fx=self.driver.find_element(By.XPATH, "//input").send_key('helooooooooooooooooo')
print('userx!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
return 'userx'
except:
pass
# input('>>>>>>')
sleep(8)
w=self.send_pasword(self.pasword)
sleep(9)
#if self.driver.current_url=='https://support.google.com/accounts/answer/40039?p=mail':
# return 'block_acses'
#if 'https://support.google.com/accounts/answer/40039?p=mail' in self.driver.current_url:
#return 'block_acses'
if "Unable to access a Google product" in self.driver.page_source:
return 'block_acses'
# i#f "Unable" in self.driver.page_source:
# return 'block_acses'
if "Unable to access" in self.driver.page_source:
return 'block_acses'
try:
fx=self.driver.find_element(By.XPATH,'//*[@id="phoneNumberId"]')
print('find ************* phoneNumberId')
return 'robot'
except:
pass
''' if "Verify" in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}verify.png"))
return 'robot'
if "Verify it" in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}verify.png"))
return 'robot'
'''
if 'Wrong password. Try again or click Forgot password to reset it.' in self.driver.page_source:
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_pasword_eror.png"))
return 'pas_eror'
if 'Confirm youre not a robot' in self.driver.page_source:
return 'robot'
try:
fx=self.driver.find_element(By.XPATH, "//input[@name='Passwd']")
return 'userx2'
except:
pass
if w=='username_eror':
#self.driver.save_screenshot(f"_{self.name}_old.png")
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_old.png"))
return 'fail_cookes'
if 'robot' in str(d):
#self.driver.save_screenshot(f"_{self.name}_old.png")
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_old.png"))
return 'robot'
time.sleep(5)
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_old.png"))
#self.driver.save_screenshot(f"_{self.name}_old.png")
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(5)
self.driver.save_screenshot(os.path.join(os.getcwd(),'picher',f"_{self.name}_old.png"))
status = self.status()
print('status >>>>>>>>>>', status)
if not status:
return 'fail_cookes'
else:
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(5)
if 'https://mail.google.com/mail/u/0/' in self.driver.current_url:
self.driver.get('https://accounts.google.com/v3/signin/')
time.sleep(5)
cookies = self.driver.execute_cdp_cmd("Network.getAllCookies",{})
cookies_json = json.dumps(cookies, indent=4, ensure_ascii=False)
cookies_json = cookies.get("cookies", [])
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
self.driver.execute_script("window.open('https://www.google.com', '_blank');")
time.sleep(2)
# سوییچ به تب جدید
self.driver.switch_to.window(self.driver.window_handles[1])
# بستن تب قبلی
self.driver.switch_to.window(self.driver.window_handles[0])
self.driver.close()
# سوییچ مجدد به تب جدید
self.driver.switch_to.window(self.driver.window_handles[0])
return cookies_json
def get_code_1(self):
code=[]
for i in range(3):
try:
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(7)
elements = self.driver.find_elements(By.XPATH, "//*[contains(text(), 'Your EA Security Code is:')]")#.text
print(elements)
for i in elements:
print(i.text)
data=i.text.replace('Your EA Security Code is: ', '')
if len(data)==0:
continue
code.append(data)
print(code)
#input('>>')
if len(code)==0:
return 'continue'
if len(code)>7:
return 'ALERT_to_mnay_code_chek'
if len(code)==7:
return 'ALERT_to_mnay_code_chek'
if len(code)==6:
return 'ALERT_to_mnay_code_chek'
if len(code)==8:
return 'ALERT_to_mnay_code_chek'
if len(code)==9:
return 'ALERT_to_mnay_code_chek'
return code
except Exception as e:
print(e)
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(6)
self.driver.refresh()
time.sleep(6)
return 'continue'
def get_code(self):
code=[]
for i in range(3):
try:
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(7)
elements = self.driver.find_elements(By.XPATH, "//*[contains(text(), 'Your EA Security Code is:')]")#.text
if len(elements)==0:
print('data not fund languge .......')
elements = self.driver.find_elements(By.XPATH, "//*[contains(text(), 'EA')]")#.text
for i in elements:
#print(i.text)
if i in code:
continue
try:
pri=(re.findall(r'EA (.+): (\d+)',i.text)[0][1])
if pri in code:continue
print(pri)
code.append(re.findall(r'EA (.+): (\d+)',i.text)[0][1])
except Exception as e:
print(e)
pass
# code=list(set(bb))
#input('>>>>>>>>>>>>>>>>>')
print(code)
#input('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
#input('>>')
if len(code)==0:
return 'continue'
return code
print(elements)
#import pdb;pdb.set_trace()
for i in elements:
print(i.text)
data=i.text.replace('Your EA Security Code is: ', '')
if len(data)==0:
continue
code.append(data)
print(code)
#input('>>')
if len(code)==0:
return 'continue'
return code
except Exception as e:
print(e)
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
time.sleep(6)
self.driver.refresh()
time.sleep(6)
return 'continue'
def end(self):
try:
self.driver.quit()
except:
pass
def send_username(self,user):
if 'Confirm youre not a robot' in self.driver.page_source:
return 'robot'
self.driver.get("https://accounts.google.com/servicelogin?service=mail")
sleep(10)
sf=''
#if 'https://mail.google.com/mail/u/0/' in self.driver.current_url:
#return 'next'
for i in range(15):
try:
if 'Confirm youre not a robot' in self.driver.page_source:
return 'robot'
fx=self.driver.find_element(By.XPATH, "//input")#.click()
sf=True
break
#sf=True
except Exception as e:
print(e)
self.driver.get("https://accounts.google.com/servicelogin?service=mail")
#sleep(10)
sleep(4)
sf=False
if sf==False:
return 'Kill'
fx.click()
fx.send_keys(user)
try:
self.driver.find_element(By.XPATH, "//div[@id='identifierNext']/div/button/span").click()
return True
except:
for i in self.driver.find_elements(By.XPATH, "//*[contains(text(), 'Next')]"):
i.click()#.text
return True
#//div[@id='identifierNext']/div/button/span
def send_pasword(self,pasw):
sleep(8)
# return 'username_eror'
if 'Confirm youre not a robot' in self.driver.page_source:
return 'robot'
for i in range(5):
try:
fx=self.driver.find_element(By.XPATH, "//input[@name='Passwd']")#.click()
sf=True
break
#sf=True
except Exception as e:
print(e)
sleep(4)
sf=False
if sf==False:
return 'Kill'
fx.click()
fx.send_keys(pasw)
try:
self.driver.find_element(By.XPATH, '//*[@id="passwordNext"]/div/button/span').click()
return True
except:
pass
try:
self.driver.find_element(By.XPATH, "//div[@id='identifierNext']/div/button/span").click()
return True
except:
try:
for i in self.driver.find_elements(By.XPATH, "//*[contains(text(), 'Next')]"):
i.click()#.text
return True
except:
pass
#//span[contains(.,'Next')]
def change_lang(self):
# return True
self.driver.get("https://mail.google.com/mail/u/0/#settings/general")
sleep(10)
#import pdb;pdb.set_trace()
#iframes = self.driver.find_elements(By.TAG_NAME, "iframe")
xx=self.driver.find_element(By.XPATH, "//select")
sleep(5)
xx.click()
xx.send_keys('English (UK)')
xx.click()
xx=self.driver.find_element(By.XPATH, "//td/div/button").click()
sleep(3)
self.driver.get("https://myaccount.google.com/language")
#import pdb;pdb.set_trace()
#https://myaccount.google.com/language
xd=''
for i in range(8):
try:
try:
sfg=self.driver.find_element(By.XPATH, "//div/button/div")
sfg.click()
xd=True
break
except:
pass
try:
sfg=self.driver.find_element(By.XPATH, "/html/body/c-wiz/div/div[2]/div[2]/c-wiz/div[1]/div[4]/div/div[1]/ul/li/div/div[2]/div/button/div")
sfg.click()
xd=True
break
except:
pass
try:
sfg=self.driver.find_element(By.XPATH,'/html').click()
sfg=self.driver.find_element(By.XPATH,'/html').send_keys(Keys.TAB)
active_element =self.driver.switch_to.active_element
active_element.click()
xd=True
break
except:
pass
except:
self.driver.refresh()
sleep(5)
if xd==True:
sleep(1)
try:
self.driver.find_element(By.XPATH, "//label/input").send_keys("English")
except:
active_element =self.driver.switch_to.active_element
active_element.send_keys("English")
sleep(1)
try:
self.driver.find_element(By.XPATH, "//label/input").send_keys(Keys.ARROW_DOWN)
except:
active_element =self.driver.switch_to.active_element
active_element.send_keys(Keys.ARROW_DOWN)
sleep(1)
try:
self.driver.find_element(By.XPATH, "//label/input").send_keys(Keys.ENTER)
except:
active_element =self.driver.switch_to.active_element
active_element.send_keys(Keys.ENTER)
sleep(1)
self.driver.find_element(By.XPATH, "//li[58]").click()
self.driver.find_element(By.XPATH, "//div[3]/button/span[5]").click()
sleep(1)
return True
return True
def status(self):
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
sleep(8)
if 'https://mail.google.com/mail/u/0/#inbox' in self.driver.current_url:
self.change_lang()
self.driver.get('https://mail.google.com/mail/u/0/#inbox')
sleep(1)
return True
else:
return False
def main(path_png_file,
chrome,
eamil,
get_cookes,
codex,
value,
val2,
browser_proxy,
):
ea=ea_fucking(path_png_file)
load_browser_windows=ea.load_browser_windows(chrome)
# pyautogui.press("enter")
ea.get_tor()
pyautogui.press("enter")
sleep(1)
get_ea=ea.get_to_ea()
print('get_to_ea >>>',get_ea)
if 'ea_created__app_code_nead!!' in str(get_ea):
return 'ea_created__app_code_nead!!'
if get_ea:
print('get_to_ea ok hoeraaa gooo')
clik_extenshen = ea.clik_extenshen(get_cookes=get_cookes)
print('clik_extenshen >>>', clik_extenshen)
if isinstance(clik_extenshen, str):return clik_extenshen
if clik_extenshen:
# Click month
click_gmail = ea.click_gmail()
print('click_gmail >>>', click_gmail)
if isinstance(click_gmail, str):return click_gmail
if not click_gmail:
print('click_gmail Failed!')
return 'click_gmail Failed'
# Click day
chek_logo = ea.chek_logo()
if chek_logo=='fail_mail':
return 'fail_mail'
print('chek_logo >>>', chek_logo)
#if isinstance(chek_logo, str):return chek_logo
if chek_logo=='fail_mail':
return 'fail_mail'
if chek_logo==True:
continue_page = ea.continue_page()
print('continue_page >>>', continue_page)
if not continue_page:
print('continue_page Failed!')
return 'continue_page Failed'
#####################################################################################################################################
if continue_page=='nime':
sleep(10)
#######################################$$$$$
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
print('----------//////////',get_turn_on_2)
#import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
send_green_status(server)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('finsh >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
#import pdb;pdb.set_trace()
return handel_page_and_code
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# Go to next page
input_PATRH = ea.input_PATRH()
if isinstance(input_PATRH, str):return input_PATRH
print('input_PATRH >>>', input_PATRH)
if not input_PATRH:
print('input_PATRH Failed!')
return 'input_PATRH Failed'
# Check CAPTCHA
contuen_page2 = ea.contuen_page2()
if isinstance(contuen_page2, str):return contuen_page2
print('contuen_page2 >>>', contuen_page2)
if not contuen_page2:
print('contuen_page2 Failed!')
return 'contuen_page2 Failed'
# import pdb;pdb.set_trace()
# Accept buttons
next = ea.next()
if isinstance(next, str):return next
print('next >>>', next)
if not next:
print('next Failed!')
return 'next Failed'
##############################################################
sleep(10)
accept = ea.accept()
print('accept >>>', accept)
if 'make_other_time'==accept:
#import pdb;pdb.set_trace()
#return 'make_other_time'
sleep(10)
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
print('----------//////////',get_turn_on_2)
#import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('finsh >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
#import pdb;pdb.set_trace()
return handel_page_and_code
if not accept:
print('accept Failed!')
return 'accept Failed'
send_green_status(server)
# Click verify
sleep(10)
creat = ea.creat()
if 'make_other_time'==creat:
#return 'make_other_time'
sleep(10)
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
#import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('finsh >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
#import pdb;pdb.set_trace()
return handel_page_and_code
print('creat >>>', creat)
if isinstance(creat, str):return creat
if not creat:
print('creat Failed!')
return 'creat Failed'
sleep(10)
finsh = ea.finsh()
if isinstance(finsh, str):return finsh
print('finsh >>>', finsh)
if not finsh:
print('finsh Failed!')
return 'finsh Failed'
#######################################$$$$$
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
# import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('get_send_sec_3 >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
send_green_status(server)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
# import #pdb;pdb.set_trace()
return handel_page_and_code
send_green_status(server)
if chek_logo=='nime':
send_green_status(server)
next = ea.next()
if isinstance(next, str):return next
print('next >>>', next)
if not next:
print('next Failed!')
return 'next Failed'
##########################################################
sleep(10)
accept = ea.accept()
print('accept >>>', accept)
if 'make_other_time'==accept:
#import pdb;pdb.set_trace()
#return 'make_other_time'
#import pdb;pdb.set_trace()
#return 'make_other_time'
sleep(10)
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
print('----------//////////',get_turn_on_2)
#import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
send_green_status(server)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('finsh >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
#import pdb;pdb.set_trace()
return handel_page_and_code
if not accept:
print('accept Failed!')
return 'accept Failed'
# Click verify
sleep(10)
creat = ea.creat()
if 'make_other_time'==creat:
#return 'make_other_time'
sleep(10)
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
#import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('finsh >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
#import pdb;pdb.set_trace()
return handel_page_and_code
print('creat >>>', creat)
if not creat:
print('creat Failed!')
return 'creat Failed'
sleep(10)
finsh = ea.finsh()
if isinstance(finsh, str):return finsh
print('finsh >>>', finsh)
if not finsh:
print('finsh Failed!')
return 'finsh Failed'
#######################################$$$$$
get_seting_sec_1 = ea.get_seting_sec_1()
if isinstance(get_seting_sec_1, str):return get_seting_sec_1
print('ea.get_seting_sec_1 >>>', get_seting_sec_1)
if not ea.get_seting_sec_1:
print('ea.get_seting_sec_1 Failed!')
return 'ea.get_seting_sec_1 Failed'
sleep(10)
get_turn_on_2 = ea.get_turn_on_2(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in str(get_turn_on_2):
return 'ALERT_to_mnay_code_chek'
print('----------//////////',get_turn_on_2)
# import pdb;pdb.set_trace()
if 'ea_created__app_code_nead!!' in str(get_turn_on_2):
return "ea_created__app_code_nead!!"
if isinstance(get_turn_on_2, str):return get_turn_on_2
print('ea.get_turn_on_2 >>>', get_turn_on_2)
if not get_turn_on_2:
print('ea.get_turn_on_2 Failed!')
return 'ea.get_turn_on_2 Failed'
sleep(10)
send_green_status(server)
get_send_sec_3 = ea.get_send_sec_3()
if isinstance(get_send_sec_3, str):return get_send_sec_3
print('finsh >>>', get_send_sec_3)
if not get_send_sec_3:
print('ea.get_send_sec_3 Failed!')
return 'ea.get_send_sec_3 Failed'
sleep(10)
handel_page_and_code = ea.handel_page_and_code(codex,value,val2)
if 'ALERT_to_mnay_code_chek' in handel_page_and_code:
return 'ALERT_to_mnay_code_chek'
if isinstance(handel_page_and_code, str):return handel_page_and_code
print('handel_page_and_code >>>', handel_page_and_code)
if not handel_page_and_code:
print('handel_page_and_code Failed!')
return 'handel_page_and_code Failed'
###########################################^^^^
#import pdb;pdb.set_trace()
return handel_page_and_code
# Open new tab
######################################
send_green_status(server)
if 'click_gmail' in str(get_ea):
send_green_status(server)
return 'get_ea Failed'
else:
send_green_status(server)
print('get_ea Failed!')
return 'get_ea Failed'
#########################################################################
def create_session(name,pas):
BASE_URL=os.getenv("url")
response = requests.post(f"{BASE_URL}/create_session", json={"name": name,"pas":pas},timeout=500)
if '<title>500 Internal Server Error</title>' in response.text:
return 'fail_server'
if response.json()['message']=='Session created':
session_data = response.json()['name']
print("Session Response: >>>>>>>>>>>>>>>", session_data)
return session_data
else:
print('>>>>>>False cookes >>>>>>>>>')
return False
def check_cookies(name):
BASE_URL=os.getenv("url")
response = requests.post(f"{BASE_URL}/check_cookies", json={"name": name},timeout=500)
print(response.text)
#@input('======')
if '<title>500 Internal Server Error</title>' in response.text:
return 'fail_server'
if 'fail_cookes' in str(response.text):
return False
if 'success' in str(response.json()):
cookies = response.json()['success']
print("Cookies Response:", cookies)
return cookies
else:
return False
#socks5://8f7b6c1bdfc33fce0973__cr.us:11a1f76e3314b769@148.251.5.30:10023#148.251.5.30
browser_proxy=None#os.getenv("browser_proxy")
browser=os.getenv("browser")
url=os.getenv("url")
type_proxy=os.getenv("type_proxy")
user=os.getenv("user")
pasword=os.getenv("pasword")
ipx=os.getenv("ip")
portx=int(os.getenv("port"))
max_range=int(os.getenv("max_range"))
#########################################################################
user_sys = os.getlogin()
path_file=os.path.join(os.getcwd(),'input')
path_png_file=os.path.join(os.getcwd(),'ea_png')
######################################################
try:
with open('LOGS_forse.TXT', 'r', encoding='utf-8') as fsx:
bsxs=fsx.read()
except:
with open('LOGS_forse.TXT', 'w', encoding='utf-8') as fsx:
pass
with open('LOGS_forse.TXT', 'r', encoding='utf-8') as fsx:
bsxs=fsx.read()
#################################################
try:
with open('LOGS.TXT', 'r', encoding='utf-8') as fsx:
bs=fsx.read()
except:
with open('LOGS.TXT', 'w', encoding='utf-8') as fsx:
pass
with open('LOGS.TXT', 'r', encoding='utf-8') as fsx:
bs=fsx.read()
####################################################
try:
with open('True.TXT', 'r', encoding='utf-8') as fsx:
Truex=fsx.read()
except:
with open('True.TXT', 'w', encoding='utf-8') as fsx:
pass
with open('True.TXT', 'r', encoding='utf-8') as fsx:
Truex=fsx.read()
#C:\Users\1\Desktop\New folder (4)\New folder
def check_and_update_email_usage(email: str) -> bool:
USAGE_FILE = 'email_usage.json'
usage_data = {}
# اگر فایل وجود داشت، بخون
if os.path.exists(USAGE_FILE):
try:
with open(USAGE_FILE, 'r') as f:
usage_data = json.load(f)
except:
usage_data = {}
else:
# فایل اولیه بساز
with open(USAGE_FILE, 'w') as f:
json.dump({}, f)
# تعداد فعلی استفاده
current_count = usage_data.get(email, 0)
if current_count >= 6:
usage_data[email] = 0 # ریست بشه
result = False
else:
usage_data[email] = current_count + 1
result = True
# ذخیره‌سازی در فایل
try:
with open(USAGE_FILE, 'w') as f:
json.dump(usage_data, f, indent=2)
except Exception as e:
print(f"خطا در ذخیره‌سازی فایل: {e}")
return result
def send_green_status(SERVER_NAME):
SERVER_URL = 'http://188.245.173.247:5000/robot_ping'
try:
requests.post(SERVER_URL, json={
'server_name': SERVER_NAME,
'status': 'در حال اجرا',
'note': 'همه چی اوکیه، دارم کار می‌کنم :)'
})
except Exception as e:
print(e)
def send_orange_status(SERVER_NAME):
SERVER_URL = 'http://188.245.173.247:5000/robot_ping'
try:
requests.post(SERVER_URL, json={
'server_name': SERVER_NAME,
'status': 'در حال انتظار',
'note': 'منتظرم شرایط مناسب بشه یا جوابی بیاد.'
})
except Exception as e:
print(e)
def send_red_status(SERVER_NAME):
SERVER_URL = 'http://188.245.173.247:5000/robot_ping'
try:
requests.post(SERVER_URL, json={
'server_name': SERVER_NAME,
'status': 'خطا یا توقف',
'note': 'یه مشکلی پیش اومده، لطفاً بررسی کن.'
})
except Exception as e:
print(e)
def clear_selected_folders(folder_names):
profile_dir = os.path.join(os.getcwd(), "profile")
if os.path.exists(profile_dir):
for folder_name in folder_names:
folder_path = os.path.join(profile_dir, folder_name)
if os.path.exists(folder_path) and os.path.isdir(folder_path):
try:
shutil.rmtree(folder_path)
print(f"پاک شد: {folder_name}")
except Exception as e:
print(f"خطا در پاک کردن {folder_name}: {e}")
else:
print(f"فولدر {folder_name} پیدا نشد.")
else:
print("فولدر profile وجود نداره.")
def delete_if_low_disk_space(path_to_check, folder_to_delete, threshold_gb=10):
"""
اگه فضای خالی دیسک کمتر از threshold_gb گیگ بود، پوشه مشخص‌شده رو حذف می‌کنه.
path_to_check: آدرس جایی از دیسک برای چک کردن فضای آزاد (مثلاً '/')
folder_to_delete: آدرس پوشه‌ای که باید حذف بشه اگه فضا کم بود
threshold_gb: حد آستانه‌ی گیگابایتی (پیش‌فرض: 5 گیگ)
"""
total, used, free = shutil.disk_usage(path_to_check)
free_gb = free / (1024 ** 3)
if free_gb < threshold_gb:
if os.path.exists(folder_to_delete):
shutil.rmtree(folder_to_delete)
print(f"پوشه '{folder_to_delete}' حذف شد چون فقط {free_gb:.2f} گیگ فضا باقی‌مونده بود.")
else:
print(f"پوشه‌ای به نام '{folder_to_delete}' پیدا نشد.")
else:
print(f"فضای کافی ({free_gb:.2f} گیگ) وجود داره. نیازی به حذف نیست.")
#value,val2='azam46ahi@gmail.com','azam46ahi@gmail.com'
#codexs=Gmail(value,val2,browser_proxy='fuck')
#print(codexs.change_lang())
#input('>>')
#check_cookiesx=str(codexs.check_cookies())
#codexs=Gmail('arzw10053@gmail.com','Shwe65544t',browser_proxy='fuck')
#check_cookiesx=str(codexs.check_cookies())
if __name__ == "__main__":
conter_port=0
chek_sum=''
db_config = {
'host': os.getenv("DB_HOST"),
'port': os.getenv("DB_PORT"),
'dbname': os.getenv("DB_NAME"),
'user': os.getenv("DB_USER"),
'password': os.getenv("DB_PASSWORD")
}
server = os.getenv('SERVER_NAME')
print(db_config)
manager = EmailGroupManager(db_config)
group_data=[]
while True:
try:
if len(group_data)==0:
group_data = manager.get_group(server)
print(group_data)
print(len(group_data))
print('get new data drom database -------------------------------------------****')
if len(group_data)==0:
group_datax = manager.get_open_groups_1(server)
group_data=[]
for ig in group_datax:
group_data.append({
"id": ig[0],
"email": ig[1],
"email_password": ig[-3],
})
print(group_data)
print(len(group_data))
print('old data base ///////////////////////////////////////////////////////////')
if len(group_data)==0:
send_orange_status(server)
continue
send_green_status(server)
for ixs in group_data:
os.system("taskkill /f /im chrome.exe")
os.system("taskkill /f /im chromedriver.exe")
os.system("taskkill /f /im chrome.exe")
os.system("taskkill /f /im uc_driver.exe")
os.system("taskkill /f /im chromedriver.exe")
#df = pd.read_excel(os.path.join(path_file, ixs), engine='openpyxl')
print(ixs)
# {'id': 4, 'email': 'sunnmp97667@gmail.com', 'email_password': 'Exgvufc6Rxtf'}
value=ixs['email']
val2=ixs['email_password']
id_mail=ixs['id']
# email = 'someone@gmail.com'
delete_if_low_disk_space("C:\\",os.path.join(os.getcwd(),'profile'))
if check_and_update_email_usage(value):
print('مجاز به استفاده ✅')
else:
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="unknown error")
manager.append_to_history(email_id=id_mail,message="unknown error")
manager.mark_email_finished_nime(
email_id=id_mail,
success=False,
backup_code='unknown error'
)
print('تعداد استفاده به حداکثر رسید! مقدار ریست شد ❌')
clear_selected_folders([value])
continue
#for value, val2 in zip(df.iloc[:, 0], df.iloc[:, 1]):
# value='kosnago22r@gmail.com'
# val2='aezakmi90'
manager.set_taken_at(id_mail)
print(value, val2)
#input('>>>')
kill_tor_browser()
ip=pool()
if chek_sum==True:
pass
else:
while True:
print(portx)
portx+=1
conter_port+=1
if conter_port>int(max_range):
conter_port=0
portx=int(os.getenv("port"))
break
# @ socks5://8f7b6c1bdfc33fce0973__cr.us:11a1f76e3314b769@148.251.5.30:10023#148.251.5.30
print(f'{type_proxy}://{user}:{pasword}@{ipx}:{portx}#148.251.5.30')
chek_2_2=ip.chek_2_2(f'{type_proxy}://{user}:{pasword}@{ipx}:{portx}#148.251.5.30')
print(chek_2_2)
if chek_2_2==True:
print('proxy conected!!!')
chek_sum=True
break
print(value)
#Gmail(value,val2)
os.system("taskkill /f /im chrome.exe")
os.system("taskkill /f /im chromedriver.exe")
os.system("taskkill /f /im chrome.exe")
os.system("taskkill /f /im uc_driver.exe")
os.system("taskkill /f /im chromedriver.exe")
codexs=Gmail(value,val2,browser_proxy=browser_proxy)
try:
check_cookiesx=str(codexs.check_cookies())
if codexs.flag_exit==True:
codexs.flag_exit=None
codexs.end()
codexs=Gmail(value,val2,browser_proxy=browser_proxy)
check_cookiesx=str(codexs.check_cookies())
if 'pas_eror' in check_cookiesx:
with open('woring_gmail.txt','a')as gy:
gy.write(f"{str(get_tehran_time())} : {value} : {'passw_eror'}\n")
file_data["username"]=value
file_data["totp"]='passw_eror'
file_data["time"]=get_tehran_time()
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="passw_eror")
clear_selected_folders([value])
continue
if 'help keep your account secure' in check_cookiesx:
with open('woring_gmail.txt','a')as gy:
gy.write(f"{str(get_tehran_time())} : {value} : {'help keep your account secure'}\n")
file_data["username"]=value
file_data["totp"]='help keep your account secure'
file_data["time"]=get_tehran_time()
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="help keep your account secure")
clear_selected_folders([value])
continue
if 'block_acses' in check_cookiesx:
with open('woring_gmail.txt','a')as gy:
gy.write(f"{str(get_tehran_time())} : {value} : {'Unable to access a Google product'}\n")
file_data["username"]=value
file_data["totp"]='Unable to access a Google product'
file_data["time"]=get_tehran_time()
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="Unable to access a Google product")
clear_selected_folders([value])
continue
if 'robot' in check_cookiesx:
with open('woring_gmail.txt','a')as gy:
gy.write(f"{str(get_tehran_time())} : {value} : {'nead_very_fy'}\n")
file_data["username"]=value
file_data["totp"]='nead_very_fy'
file_data["time"]=get_tehran_time()
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="nead_very_fy")
clear_selected_folders([value])
continue
if 'userx' in check_cookiesx:
with open('LOGS.txt','a')as gy:
gy.write(f"{str(get_tehran_time())} : {value} : {'username_eror'}\n")
file_data["username"]=value
file_data["totp"]='username_eror'
file_data["time"]=get_tehran_time()
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="userx")
clear_selected_folders([value])
continue
if 'userx2' in check_cookiesx:
with open('woring_gmail.txt','a')as gy:
gy.write(f"{str(get_tehran_time())} : {value} : {'pasword_eror'}\n")
file_data["username"]=value
file_data["totp"]='pasword_eror'
file_data["time"]=get_tehran_time()
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="pasword_eror")
clear_selected_folders([value])
continue
print(check_cookiesx)
check_cookiesxddd=check_cookiesx
check_cookiesx=check_cookiesx.replace('"sameSite": "Lax",','',1000).replace('"sameSite": "None",','',1000)
print(check_cookiesx)
except Exception as e:
#value=ixs['email']
#val2=ixs['email_password']
fxxxx=str(ixs['email']).split('@')[0]
with open(f'piche\\chek_it_it______Q___{fxxxx}.txt','w')as gy:
try:
gy.write(str(e))
except:
gy.write(str(e))
with open(f'picher\\chek_it_it_________{fxxxx}.txt','w')as gy:
try:
gy.write(str(check_cookiesxddd))
except:
gy.write(str('check_cookiesxddd'))
print('cookes can notloaded no set data base',e)
continue
if 'block_acses' in check_cookiesx:
with open('robot.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {'Unable to access a Google product'}\n")
print('Unable to access a Google product')
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="Unable to access a Google product")
clear_selected_folders([value])
continue
if 'robot' in check_cookiesx:
with open('robot.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {'<title>500 Internal Server Error</title>'}\n")
print('robot')
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="robot")
clear_selected_folders([value])
continue
print(check_cookiesx)
if check_cookiesx==str(False):
with open('LOGS_forse.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {'fail_cookes'}\n")
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="fail_cookes")
print('fail_cookes')
clear_selected_folders([value])
continue
try:
data = eval(check_cookiesx)
check_cookiesx = json.dumps(data, indent=4)
except Exception as e:
with open('LOGS_cookes.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {e}\n")
print('fail_cookes')
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="fail_cookes")
clear_selected_folders([value])
continue
manager.update_login_status(
email_id=id_mail,
success=True)
send_green_status(server)
result=main(path_png_file,browser,os.path.join(path_file,value),get_cookes=check_cookiesx,codex=codexs,value=value, val2=val2,browser_proxy=browser_proxy)
###################
# fail_15_send_sec_code_app_code
# if '11111111' in result:
# manager.append_to_history(email_id=id_mail,message="fail_15_send_sec_code_app_code")
# manager.mark_email_finished(
# email_id=id_mail,
#success=True,
# backup_code='fail_15_send_sec_code_app_code'
# )
# manager.update_login_status(
#email_id=id_mail,
# success=False,
#error_message="fail_15_send_sec_code_app_code")
# clear_selected_folders([value])
###################
if 'ALERT_to_mnay_code_chek' in result:
manager.append_to_history(email_id=id_mail,message="ALERT_to_mnay_code_chek!!")
manager.mark_email_finished(
email_id=id_mail,
success=True,
backup_code='ALERT_to_mnay_code_chek'
)
manager.update_login_status(
email_id=id_mail,
success=False,
error_message="ALERT_to_mnay_code_chek")
clear_selected_folders([value])
if 'ea_created__app_code_nead!!' in result:
#manager.append_to_history(email_id=id_mail,message="ea_created__app_code_nead!!")
manager.mark_email_finished_nime(
email_id=id_mail,
success=True,
backup_code='ea_created__app_code_nead!!'
)
with open('True.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {result}\n")
clear_selected_folders([value])
if isinstance(result, list):
with open('True.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {result}\n")
manager.mark_email_finished(
email_id=id_mail,
success=True,
backup_code=result
)
clear_selected_folders([value])
if 'fail_mail' in result:
print('gamil or eror 500 png eror :) continue')
continue
with open('LOGS.TXT', 'a', encoding='utf-8') as fs:
fs.write(f"{str(get_tehran_time())} : {value} : {result}\n")
manager.append_to_history(email_id=id_mail,message=result)
file_data["username"]=value
file_data["totp"]=result
file_data["time"]=get_tehran_time()
try:
file_name = 'out_put_ea_with_gmail.xlsx'
if os.path.exists(file_name):
df_existing = pd.read_excel(file_name)
df_new = pd.DataFrame([file_data])
df_updated = pd.concat([df_existing, df_new], ignore_index=True)
else:
df_updated = pd.DataFrame([file_data])
df_updated.to_excel(file_name, index=False)
chek_sum=False
codexs.end()
except:
pass
try:
with open('LOGS_forse.TXT', 'r', encoding='utf-8') as fsx:
bsxs=fsx.read()
except:
with open('LOGS_forse.TXT', 'w', encoding='utf-8') as fsx:
pass
with open('LOGS_forse.TXT', 'r', encoding='utf-8') as fsx:
bsxs=fsx.read()
#################################################
try:
with open('LOGS.TXT', 'r', encoding='utf-8') as fsx:
bs=fsx.read()
except:
with open('LOGS.TXT', 'w', encoding='utf-8') as fsx:
pass
with open('LOGS.TXT', 'r', encoding='utf-8') as fsx:
bs=fsx.read()
####################################################
try:
with open('True.TXT', 'r', encoding='utf-8') as fsx:
Truex=fsx.read()
except:
with open('True.TXT', 'w', encoding='utf-8') as fsx:
pass
with open('True.TXT', 'r', encoding='utf-8') as fsx:
Truex=fsx.read()
os.system("taskkill /f /im chrome.exe")
os.system("taskkill /f /im uc_driver.exe")
os.system("taskkill /f /im chromedriver.exe")
sleep(2)
chek_sum=False
group_data.clear()#
except Exception as e:
print(e)
with open('exitlogs.txt','a')as fxs:
fxs.write(str(e)+'\n')