import logging import sys from concurrent.futures import ThreadPoolExecutor import params from logs.AppLogging import init_logger from pojo.ModeEnum import ModeEnum from pojo.contact_pojo import ContactPojo from utils.excel_reader import ExcelHelper from workers.commandor_page import CommandorPage # used to save the current slot position init_logger() 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, mode: ModeEnum = ModeEnum.MANUAL): # read the contact, and contact the 2 objects together excel_reader = ExcelHelper() all_contacts = excel_reader.read_contacts() if len(all_contacts) <= end_number: end_number = len(all_contacts) contacts = all_contacts[start_number - 1: end_number] logger.info(contacts) with ThreadPoolExecutor(max_workers=max_workers) as executor: for contact in contacts: proxy = get_proxy(proxy_type) # start the task in thread executor.submit( CommandorPage(contact, store_type=store_choose_state, proxy_type=proxy_type, mode=mode).start_page, proxy) 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() with ThreadPoolExecutor(max_workers=10) as executor: for errorContact in list: contact = ContactPojo.get_contact_from_error_contact(errorContact) proxy = get_proxy() # start the task in thread executor.submit( CommandorPage(contact, store_type=store_type, mode=mode).start_page, proxy) def get_proxy(proxy_type=0): return params.get_proxy(proxy_type) if __name__ == '__main__': # 修改联系人行,结束联系人行 第三个参数store等于0的时候是随机,传入1的时候是总店 # start_book(16, 16, store_choose_state=0, proxy_type=0) recheck_the_captcha_error_contacts(0, mode=ModeEnum.AUTOMATIC)