Files
appointment_tool/appointment.py
T
2022-07-04 22:16:51 +02:00

104 lines
3.6 KiB
Python

import PySimpleGUI as sg
from main import start_book, recheck_the_captcha_error_contacts
from src.pojo.ModeEnum import ModeEnum
from src.proxy.proxy_type import ProxyType
KEY_CHOOSE_STORE = "CHOOSE_STORE"
KEY_START_NUMBER = "KEY_START_NUMBER"
KEY_END_NUMBER = "KEY_END_NUMBER"
KEY_MAX_WORKERS = "KEY_MAX_WORKERS"
KEY_RANDOM = "KEY_RANDOM"
KEY_PROXY_BRIGHTDATA = "KEY_PROXY_BRIGHTDATA"
KEY_PROXY_NETNUT = "KEY_PROXY_NETNUT"
KEY_FAUBOURG = "KEY_FAUBOURG"
KEY_GEORGE = "KEY_GEORGE"
KEY_SEVRES = "KEY_SEVRES"
KEY_AUTOMATIC = "KEY_AUTOMATIC"
KEY_MANUAL = "KEY_MANUAL"
GROUP_MODE = "GROUP_MODE"
GROUP_STORE = "STORE"
GROUP_PROXY = "GROUP_PROXY"
KEY_RUN_ERROR_CONTACT = "KEY_RUN_ERROR_CONTACT"
file_list_column = [
[sg.Text('请输入联系人表的起始和结束行')],
[sg.Text('起始行', size=(15, 1)), sg.InputText(tooltip="起始行", key=KEY_START_NUMBER)],
[sg.Text('结束行', size=(15, 1)), sg.InputText(tooltip="结束行", key=KEY_END_NUMBER)],
[sg.Text('并发数', size=(15, 1)), sg.InputText(tooltip="结束行", key=KEY_MAX_WORKERS, default_text=10)],
[sg.Submit(button_text="运行", key="submit")],
[sg.Submit(button_text="重约发生错误的约会", key=KEY_RUN_ERROR_CONTACT)]
]
# For now will only show the name of the file that was chosen
store_settings_column = [
[sg.Text("目标商店")],
[sg.Radio('随机', group_id=GROUP_STORE, key=KEY_RANDOM, default=True)],
[sg.Radio('Hermès Faubourg Saint-Honoré', group_id=GROUP_STORE, key=KEY_FAUBOURG, default=False)],
[sg.Radio('Hermès George V', group_id=GROUP_STORE, key=KEY_GEORGE, default=False)],
[sg.Radio('Hermès Sèvres', group_id=GROUP_STORE, key=KEY_SEVRES, default=False)]
]
proxy_settings_column = [
[sg.Text("代理ip池")],
[sg.Radio('亮数据', group_id=GROUP_PROXY, key=KEY_PROXY_BRIGHTDATA, default=True)],
[sg.Radio('Netnut', group_id=GROUP_PROXY, key=KEY_PROXY_NETNUT, default=False)],
]
mode_settings_column = [
[sg.Text("约会模式")],
[sg.Radio('手动', group_id=GROUP_MODE, key=KEY_MANUAL, default=True)],
[sg.Radio('自动', group_id=GROUP_MODE, key=KEY_AUTOMATIC, default=False)],
]
# ----- Full layout -----
layout = [
[
sg.Column(file_list_column),
sg.Column(store_settings_column),
sg.Column(proxy_settings_column),
sg.Column(mode_settings_column)
]
]
window = sg.Window("爱马仕约会", layout)
def on_no_contact_found():
sg.popup("对应联系人列表为空")
while True:
event, values = window.read()
print(event)
print(values)
# try:
max_workers = 10
if values[KEY_MAX_WORKERS]:
max_workers = int(values[KEY_MAX_WORKERS])
store_type = 0
mode = ModeEnum.MANUAL
if values[KEY_FAUBOURG]:
store_type = 1
elif values[KEY_GEORGE]:
store_type = 2
elif values[KEY_SEVRES]:
store_type = 3
proxy_type = ProxyType.BRIGHT_DATA
if values[KEY_PROXY_NETNUT]:
proxy_type = ProxyType.NETNUT
elif values[KEY_PROXY_BRIGHTDATA]:
proxy_type = ProxyType.BRIGHT_DATA
if values[KEY_AUTOMATIC]:
mode = ModeEnum.AUTOMATIC
if event == "submit":
start_line = int(values[KEY_START_NUMBER])
end_line = int(values[KEY_END_NUMBER])
start_book(start_line, end_line, store_choose_state=store_type, max_workers=max_workers, proxy_type=proxy_type,
mode=mode)
elif event == KEY_RUN_ERROR_CONTACT:
recheck_the_captcha_error_contacts(max_workers=max_workers, store_type=store_type, mode=mode,
on_no_contact_found=on_no_contact_found)
elif event == "Exit" or event == sg.WIN_CLOSED:
break