3568 lines
143 KiB
Python
3568 lines
143 KiB
Python
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 it’s 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 you’re 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 it’s 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 'Couldn’t find your Google Account'in self.driver.page_source:
|
||
return 'userx'
|
||
if 'To help keep your account secure, Google needs to verify it’s 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 it’s 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 it’s you. Please sign in again to continue to Gmail.'in self.driver.page_source:
|
||
return 'help keep your account secure'
|
||
# input('>>>>>>3')
|
||
if 'Confirm you’re 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 you’re not a robot' in self.driver.page_source:
|
||
return 'robot'
|
||
sleep(8)
|
||
if 'To help keep your account secure, Google needs to verify it’s you. Please sign in again to continue to Gmail.'in self.driver.page_source:
|
||
return 'help keep your account secure'
|
||
# input('>>>>>>5')
|
||
if 'Confirm you’re 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 you’re 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 you’re 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 you’re 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 you’re 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')
|