add BrightData proxy support
This commit is contained in:
+10
-12
@@ -3,14 +3,15 @@ import PySimpleGUI as sg
|
||||
# First the window layout in 2 columns
|
||||
from main import start_book
|
||||
from pojo.ModeEnum import ModeEnum
|
||||
from 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_RES = "KEY_PROXY_RES"
|
||||
KEY_PROXY_CC = "KEY_PROXY_CC"
|
||||
KEY_PROXY_BRIGHTDATA = "KEY_PROXY_BRIGHTDATA"
|
||||
KEY_PROXY_NETNUT = "KEY_PROXY_NETNUT"
|
||||
KEY_FAUBOURG = "KEY_FAUBOURG"
|
||||
KEY_GEORGE = "KEY_GEORGE"
|
||||
KEY_SEVRES = "KEY_SEVRES"
|
||||
@@ -37,8 +38,8 @@ store_settings_column = [
|
||||
]
|
||||
proxy_settings_column = [
|
||||
[sg.Text("代理ip池")],
|
||||
[sg.Radio('res(速度)', group_id=GROUP_PROXY, key=KEY_PROXY_RES, default=True)],
|
||||
[sg.Radio('cc(稳定)', group_id=GROUP_PROXY, key=KEY_PROXY_CC, default=False)],
|
||||
[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 = [
|
||||
@@ -76,19 +77,16 @@ while True:
|
||||
elif values[KEY_SEVRES]:
|
||||
store_type = 3
|
||||
|
||||
proxy_type = 0
|
||||
if values[KEY_PROXY_CC]:
|
||||
proxy_type = 1
|
||||
elif values[KEY_PROXY_RES]:
|
||||
proxy_type = 0
|
||||
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
|
||||
start_book(start_line, end_line, store_choose_state=store_type, max_workers=max_workers, proxy_type=proxy_type,
|
||||
mode=mode)
|
||||
# except Exception as error:
|
||||
# print("Not Integer: ")
|
||||
# print(error)
|
||||
|
||||
elif event == "Exit" or event == sg.WIN_CLOSED:
|
||||
break
|
||||
|
||||
+2
-5
@@ -12,6 +12,7 @@ from notification.AcceptedResultPojo import get_accepted_result_from
|
||||
from notification.mailer import Mailer
|
||||
from pojo.ReserveResultPojo import ReserveResultPojo
|
||||
from pojo.ResultEnum import ResultEnum
|
||||
from proxy.proxy_type import ProxyType
|
||||
|
||||
SORRY_SENTENCE_FR = "nous sommes sincèrement désolés de n'avoir pu vous satisfaire cette fois-ci"
|
||||
SORRY_SENTENCE_EN = "we are extremely sorry that we were not able to fulfill"
|
||||
@@ -72,11 +73,7 @@ class ResultChecker:
|
||||
}
|
||||
while content is None:
|
||||
content = self.load_page(self.tls.playwright, proxy, url)
|
||||
proxy = {
|
||||
"server": params.BRIGHT_DATA_PROXY_SERVER,
|
||||
"username": params.BRIGHT_DATA_PROXY_USERNAME,
|
||||
"password": params.BRIGHT_DATA_PROXY_PASSWORD
|
||||
}
|
||||
proxy = params.get_proxy(ProxyType.NETNUT)
|
||||
print(content)
|
||||
self.browser.close()
|
||||
print("Stopped worker in ", threading.current_thread().name)
|
||||
|
||||
@@ -6,6 +6,7 @@ import params
|
||||
from logs.AppLogging import init_logger
|
||||
from pojo.ModeEnum import ModeEnum
|
||||
from pojo.contact_pojo import ContactPojo
|
||||
from proxy.proxy_type import ProxyType
|
||||
from utils.excel_reader import ExcelHelper
|
||||
from workers.commandor_page import CommandorPage
|
||||
|
||||
@@ -15,7 +16,7 @@ logger = logging.getLogger()
|
||||
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
||||
|
||||
|
||||
def start_book(start_number, end_number, store_choose_state=0, max_workers=10, proxy_type=0,
|
||||
def start_book(start_number, end_number, store_choose_state=0, max_workers=10, proxy_type=ProxyType.BRIGHT_DATA,
|
||||
mode: ModeEnum = ModeEnum.MANUAL):
|
||||
# read the contact, and contact the 2 objects together
|
||||
excel_reader = ExcelHelper()
|
||||
@@ -35,9 +36,9 @@ def start_book(start_number, end_number, store_choose_state=0, max_workers=10, p
|
||||
|
||||
def recheck_the_captcha_error_contacts(store_type=0, mode: ModeEnum = ModeEnum.MANUAL):
|
||||
# get all the contacts in captcha error
|
||||
list = params.local_db_manager.get_all_captcha_error_contacts()
|
||||
contact_list = params.local_db_manager.get_all_captcha_error_contacts()
|
||||
with ThreadPoolExecutor(max_workers=10) as executor:
|
||||
for errorContact in list:
|
||||
for errorContact in contact_list:
|
||||
contact = ContactPojo.get_contact_from_error_contact(errorContact)
|
||||
proxy = get_proxy()
|
||||
# start the task in thread
|
||||
@@ -46,7 +47,7 @@ def recheck_the_captcha_error_contacts(store_type=0, mode: ModeEnum = ModeEnum.M
|
||||
proxy)
|
||||
|
||||
|
||||
def get_proxy(proxy_type=0):
|
||||
def get_proxy(proxy_type=ProxyType.BRIGHT_DATA):
|
||||
return params.get_proxy(proxy_type)
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import definitions
|
||||
from db.DbManager import DataManager
|
||||
from db.local_db_manager import LocalDbManager
|
||||
from logs.LogSender import LogSender
|
||||
from proxy.proxy_type import ProxyType
|
||||
|
||||
firebase_store_manager = DataManager()
|
||||
oracle_log_sender = LogSender()
|
||||
@@ -22,33 +23,30 @@ PROXY_NAME_PREFIX_RES = "panleicim-res-fr-"
|
||||
PROXY_NAME_PREFIX_CC = "panleicim-cc-fr-"
|
||||
|
||||
|
||||
def get_proxy_name_prefix(proxy_type=0) -> str:
|
||||
if proxy_type == 0:
|
||||
return PROXY_NAME_PREFIX_RES
|
||||
else:
|
||||
return PROXY_NAME_PREFIX_CC
|
||||
def get_proxy_name_prefix() -> str:
|
||||
return PROXY_NAME_PREFIX_RES
|
||||
|
||||
|
||||
def get_proxy(proxy_type=0):
|
||||
if proxy_type == 0:
|
||||
def get_proxy(proxy_type: ProxyType):
|
||||
if proxy_type == ProxyType.NETNUT:
|
||||
random_id_number = get_random_id_number_for_proxy()
|
||||
proxy_username = get_proxy_name_prefix(proxy_type) + random_id_number
|
||||
proxy_username = get_proxy_name_prefix() + random_id_number
|
||||
proxy = {
|
||||
"server": PROXY_SERVER,
|
||||
"username": proxy_username,
|
||||
"password": PROXY_PASSWORD
|
||||
}
|
||||
else:
|
||||
# proxy = {
|
||||
# "server": BRIGHT_DATA_PROXY_SERVER,
|
||||
# "username": BRIGHT_DATA_PROXY_USERNAME,
|
||||
# "password": BRIGHT_DATA_PROXY_PASSWORD
|
||||
# }
|
||||
proxy = {
|
||||
"server": BRIGHT_DATA_PROXY_SERVER,
|
||||
"username": BRIGHT_DATA_MOBILE_PROXY_USERNAME,
|
||||
"password": BRIGHT_DATA_MOBILE_PROXY_PASSWORD
|
||||
"username": BRIGHT_DATA_PROXY_USERNAME,
|
||||
"password": BRIGHT_DATA_PROXY_PASSWORD
|
||||
}
|
||||
# proxy = {
|
||||
# "server": BRIGHT_DATA_PROXY_SERVER,
|
||||
# "username": BRIGHT_DATA_MOBILE_PROXY_USERNAME,
|
||||
# "password": BRIGHT_DATA_MOBILE_PROXY_PASSWORD
|
||||
# }
|
||||
return proxy
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class ProxyType(Enum):
|
||||
NETNUT = "NETNUT"
|
||||
BRIGHT_DATA = "BRIGHT_DATA"
|
||||
@@ -13,6 +13,7 @@ from pojo.ReserveResultPojo import ReserveResultPojo, PublishType
|
||||
from pojo.captcha_error_contact_pojo import ERROR_TYPE_CAPTCHA, \
|
||||
TOO_MANY_REQUEST_ERROR
|
||||
from pojo.contact_pojo import ContactPojo
|
||||
from proxy.proxy_type import ProxyType
|
||||
from utils.generate_random_passport_id import get_captcha_error_contact_from_contact
|
||||
from workers.SolveCaptch import SolveCaptcha
|
||||
|
||||
@@ -52,7 +53,8 @@ class Tls(threading.local):
|
||||
class CommandorPage:
|
||||
tls = Tls()
|
||||
|
||||
def __init__(self, contact: ContactPojo, store_type=0, proxy_type=0, mode: ModeEnum = ModeEnum.MANUAL):
|
||||
def __init__(self, contact: ContactPojo, store_type=0, proxy_type=ProxyType.BRIGHT_DATA,
|
||||
mode: ModeEnum = ModeEnum.MANUAL):
|
||||
self.otp_value = None
|
||||
self.logger = logging.getLogger("约会页面:" + str(contact.phone))
|
||||
self.is_finished = False
|
||||
@@ -379,7 +381,7 @@ def launch_page():
|
||||
first_name="xingzhen",
|
||||
mail="ColbyPatel653@gmail.com", ccid="", position=0)
|
||||
page = CommandorPage(contact, store_type=1)
|
||||
return page.start_page(params.get_proxy(0))
|
||||
return page.start_page(params.get_proxy())
|
||||
|
||||
|
||||
def wait_for_otp(event: threading.Event, commandor: CommandorPage):
|
||||
|
||||
Reference in New Issue
Block a user