can run exe file

This commit is contained in:
2022-05-11 19:57:52 +02:00
parent aedea57fbd
commit d37aff124a
12 changed files with 94 additions and 85 deletions
+4 -4
View File
@@ -43,7 +43,7 @@ while True:
print(event) print(event)
print(values) print(values)
if event == "submit": if event == "submit":
try: # try:
start_line = int(values[KEY_START_NUMBER]) start_line = int(values[KEY_START_NUMBER])
end_line = int(values[KEY_END_NUMBER]) end_line = int(values[KEY_END_NUMBER])
max_workers = int(values[KEY_MAX_WORKERS]) max_workers = int(values[KEY_MAX_WORKERS])
@@ -55,9 +55,9 @@ while True:
elif values[KEY_SEVRES]: elif values[KEY_SEVRES]:
store_type = 3 store_type = 3
start_book(start_line, end_line, store_choose_state=store_type, max_workers=max_workers) start_book(start_line, end_line, store_choose_state=store_type, max_workers=max_workers)
except Exception as error: # except Exception as error:
print("Not Integer: ") # print("Not Integer: ")
print(error) # print(error)
elif event == "Exit" or event == sg.WIN_CLOSED: elif event == "Exit" or event == sg.WIN_CLOSED:
break break
+48
View File
@@ -0,0 +1,48 @@
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['appointment.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='appointment',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
import shutil
shutil.copyfile('C:\\Users\\landd\\IdeaProjects\\appointment_tool\\appointment.json', '{0}/application.json'.format(DISTPATH))
shutil.copyfile('C:\\Users\\landd\\IdeaProjects\\appointment_tool\\contact_all.xlsx', '{0}/contact_all.xlsx'.format(DISTPATH))
shutil.copyfile('C:\\Users\\landd\\IdeaProjects\\appointment_tool\\config.ini', '{0}/config.ini'.format(DISTPATH))
+4
View File
@@ -0,0 +1,4 @@
[DEFAULT]
contact_list_file = C:\Users\landd\IdeaProjects\appointment_tool\contact_all.xlsx
firebase_config_file = C:/Users/landd/IdeaProjects/appointment_tool/appointment.json
LOGS_DIR = C:/Users/landd/IdeaProjects/appointment_tool/
+3 -4
View File
@@ -2,11 +2,10 @@ import datetime
import firebase_admin import firebase_admin
import xlsxwriter as xlsxwriter import xlsxwriter as xlsxwriter
from firebase_admin import credentials, firestore from firebase_admin import credentials, firestore
import definitions import definitions
import params import params
from pojo.MailPojo import MailPojo from pojo.MailPojo import MailPojo
from pojo.ReserveResultPojo import ReserveResultPojo, PublishType from pojo.ReserveResultPojo import ReserveResultPojo
from pojo.SimInfoPojo import SimInfoPojo from pojo.SimInfoPojo import SimInfoPojo
from pojo.contact_pojo import ContactPojo from pojo.contact_pojo import ContactPojo
from utils.excel_reader import ExcelHelper from utils.excel_reader import ExcelHelper
@@ -25,10 +24,9 @@ class DataManager:
batch_size = 20 batch_size = 20
def __init__(self): def __init__(self):
cred = credentials.Certificate(definitions.ROOT_DIR + "/appointment.json") cred = credentials.Certificate(definitions.FIREBASE_CONFIG_FILE)
self._app = firebase_admin.initialize_app(cred) self._app = firebase_admin.initialize_app(cred)
self._db = firestore.client() self._db = firestore.client()
self._contact_list = excel_reader.read_contacts("/contact_all.xlsx")
def get_all_error_items(self): def get_all_error_items(self):
pass pass
@@ -88,6 +86,7 @@ class DataManager:
## 读取数据库中的sim卡信息,然后写到sim_infos.xlsx文件中 ## 读取数据库中的sim卡信息,然后写到sim_infos.xlsx文件中
def save_to_excel(self): def save_to_excel(self):
# Start from the first cell. Rows and columns are zero indexed. # Start from the first cell. Rows and columns are zero indexed.
self._contact_list = excel_reader.read_contacts()
sim_info_list = [] sim_info_list = []
for sim in self.get_all_sim_infos().stream(): for sim in self.get_all_sim_infos().stream():
print(sim) print(sim)
+6 -4
View File
@@ -1,10 +1,12 @@
import configparser
import os import os
from dotenv import load_dotenv
import getpass import getpass
config = configparser.ConfigParser()
config.read('./config.ini')
CONTACT_LIST_FILE = config['DEFAULT']['contact_list_file']
FIREBASE_CONFIG_FILE = config['DEFAULT']['firebase_config_file']
LOGS_DIR = config['DEFAULT']['LOGS_DIR']
username = getpass.getuser() username = getpass.getuser()
load_dotenv()
LOG_SOURCE = username LOG_SOURCE = username
SMS_TIMEOUT = 120
ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
+2 -2
View File
@@ -1,11 +1,11 @@
import datetime import datetime
import logging import logging
import definitions from definitions import LOGS_DIR
def init_logger(): def init_logger():
logging.basicConfig(filename=definitions.ROOT_DIR + "/appointment_{}.log".format(str(datetime.date.today())), logging.basicConfig(filename=LOGS_DIR + "/appointment_{}.log".format(str(datetime.date.today())),
filemode='a', filemode='a',
format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', datefmt='%Y-%m-%d %H:%M:%S',
-1
View File
@@ -8,7 +8,6 @@ from utils.excel_reader import ExcelHelper
from workers.commandor_page import CommandorPage from workers.commandor_page import CommandorPage
# used to save the current slot position # used to save the current slot position
init_logger() init_logger()
logger = logging.getLogger() logger = logging.getLogger()
logger.addHandler(logging.StreamHandler(stream=sys.stdout)) logger.addHandler(logging.StreamHandler(stream=sys.stdout))
+2
View File
@@ -1,3 +1,5 @@
import configparser
from db.DbManager import DataManager from db.DbManager import DataManager
from logs.LogSender import LogSender from logs.LogSender import LogSender
+1 -2
View File
@@ -2,11 +2,10 @@ dataclasses_json==0.5.6
firebase_admin==5.2.0 firebase_admin==5.2.0
pandas==1.4.1 pandas==1.4.1
playwright==1.21.0 playwright==1.21.0
pyserial==3.5
pydotenv==0.0.7 pydotenv==0.0.7
dataclasses~=0.6 dataclasses~=0.6
oci~=2.54.1 oci~=2.54.1
XlsxWriter~=3.0.3 XlsxWriter~=3.0.3
SQLAlchemy~=1.4.29
boto3~=1.21.13 boto3~=1.21.13
openpyxl==3.0.9 openpyxl==3.0.9
iniFile==0.4.1
+20 -13
View File
@@ -1,3 +1,4 @@
import logging
import random import random
import threading import threading
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
@@ -10,14 +11,10 @@ import params
from workers.commandor_page import get_random_id_number_for_proxy from workers.commandor_page import get_random_id_number_for_proxy
from logs.LogSender import TYPE_EVENT_CHECK_RESULTS, LOG_SUBJECT_EVENT from logs.LogSender import TYPE_EVENT_CHECK_RESULTS, LOG_SUBJECT_EVENT
from pojo.ReserveResultPojo import ReserveResultPojo from pojo.ReserveResultPojo import ReserveResultPojo
from utils.excel_reader import ExcelHelper
SORRY_SENTENCE = "nous sommes sincèrement désolés de n'avoir pu vous satisfaire cette fois-ci" SORRY_SENTENCE = "nous sommes sincèrement désolés de n'avoir pu vous satisfaire cette fois-ci"
PENDING_SENTENCE = "Ce soir, entre 20:00 et 20:30, vous obtiendrez une réponse par e-mail." PENDING_SENTENCE = "Ce soir, entre 20:00 et 20:30, vous obtiendrez une réponse par e-mail."
user_agent_list = ExcelHelper().read_user_agent_list()
class ResultEnum(Enum): class ResultEnum(Enum):
ACCEPTED = "ACCEPTED" ACCEPTED = "ACCEPTED"
REFUSED = "REFUSED" REFUSED = "REFUSED"
@@ -33,17 +30,27 @@ class Tls(threading.local):
class Worker: class Worker:
tls = Tls() tls = Tls()
def __init__(self):
self.logger = logging.getLogger("Worker")
def load_page(self, browser, url, proxy) -> Union[str, None]: def load_page(self, browser, url, proxy) -> Union[str, None]:
try: try:
firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) device = random.choice(params.DEVICES)
firefox_user_agents_list = list(firefox_user_agents) self.logger.info("device is " + device)
user_agent = random.choice(firefox_user_agents_list) pixel_2 = self.tls.playwright.devices[device]
page = browser.new_page( context = browser.new_context(**pixel_2, locale='en-GB')
user_agent=user_agent, self.page = context.new_page()
proxy=proxy) # hide webdriver information
page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") self.page.add_init_script("""() => {
page.goto(url, timeout=90000) Object.defineProperty(navigator,'webdriver',{get: () => undefined});
return page.content() Object.defineProperty(navigator, 'platform', {
get: () => {
return "iPhone";
}});
}
""")
self.page.goto(url, timeout=90000)
return self.page.content()
except Exception as error: except Exception as error:
print(error) print(error)
return None return None
+3 -53
View File
@@ -3,10 +3,8 @@ import json
import pandas as pandas import pandas as pandas
import definitions import definitions
import params from definitions import CONTACT_LIST_FILE
from pojo.SimInfoPojo import SimInfoPojo
from pojo.contact_pojo import ContactPojo from pojo.contact_pojo import ContactPojo
from utils.operator import check_operator
class ExcelHelper: class ExcelHelper:
@@ -19,50 +17,8 @@ class ExcelHelper:
self._df = pandas.concat([self._df, new_df]) self._df = pandas.concat([self._df, new_df])
self._df.to_excel(file_name) self._df.to_excel(file_name)
def generate_exel_from_txt(self): def read_contacts(self, file_name=CONTACT_LIST_FILE) -> list:
f = open("../phone_list.txt") contact_list_in_json = pandas.read_excel(file_name).to_json(orient='records')
lines = f.read()
self.write_to_exel("phone_list.xlsx", lines.split(","))
ccid_file = open("../ccid_list.txt")
ccids = ccid_file.read()
self.write_to_exel("ccid_list.xlsx", ccids.split(","))
print(lines)
def read_user_agent_list(self):
# read the contact list from the exel file
contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/mobile_user_agent_list.xlsx").to_json(
orient='records')
contact_dict_list = json.loads(contact_list_in_json)
user_agents = []
for contact_dict in contact_dict_list:
user_agent = contact_dict['user_agent']
user_agents.append(user_agent)
return user_agents
def read_sim_info(self) -> list:
sim_info_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/sim_infos.xlsx").to_json(orient='records')
sim_info_dict_list = json.loads(sim_info_list_in_json)
sim_info_list = []
for contact_dict in sim_info_dict_list:
position = contact_dict['position']
slot_position = int(int(position) / len(params.MODEM_POOL_PORTS)) + 1
sim_position = int(position) % len(params.MODEM_POOL_PORTS)
ccid = contact_dict['ccid']
operator = check_operator(ccid).name
siminfo = SimInfoPojo(phone=contact_dict['phone'],
name=contact_dict['name'],
ccid=ccid,
passport=contact_dict['passport'],
position=contact_dict['position'],
slot_position=slot_position,
sim_position=sim_position,
operator=operator,
email=contact_dict['email'])
sim_info_list.append(siminfo)
return sim_info_list
def read_contacts(self, file_name="/contact_all.xlsx") -> list:
contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + file_name).to_json(orient='records')
contact_dict_list = json.loads(contact_list_in_json) contact_dict_list = json.loads(contact_list_in_json)
contact_list = [] contact_list = []
for contact_dict in contact_dict_list: for contact_dict in contact_dict_list:
@@ -76,9 +32,3 @@ class ExcelHelper:
mail=contact_dict['email']) mail=contact_dict['email'])
contact_list.append(contact) contact_list.append(contact)
return contact_list return contact_list
if __name__ == '__main__':
helper = ExcelHelper()
# helper.generate_exel_from_txt()
print(helper.read_sim_info())
-1
View File
@@ -19,7 +19,6 @@ RDV_URL = "https://rendezvousparis.hermes.com/client/register"
# RDV_URL = "https://api.ipify.org" # RDV_URL = "https://api.ipify.org"
# RDV_URL ="https://bot.sannysoft.com/" # RDV_URL ="https://bot.sannysoft.com/"
otp_value = None otp_value = None
user_agent_list = ExcelHelper().read_user_agent_list()
OTP_FIELD_ID = "#sms_code" OTP_FIELD_ID = "#sms_code"
MESSAGE_FIELD_CLASS = ".message" MESSAGE_FIELD_CLASS = ".message"