From 2506165900220d77c15790dc39550490ecdd5ec4 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Wed, 23 Mar 2022 19:11:07 +0100 Subject: [PATCH] need to remove duplicated emails --- contact.xlsx | Bin 36800 -> 41495 bytes export_valid_profiles.py | 17 ++++++++++------- logs/AppLogging.py | 2 +- main.py | 11 +++++------ wait_for_sms.py | 24 ++++++------------------ 5 files changed, 22 insertions(+), 32 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 580e54896e75d0cd88ffe27ac784dd5f19015f6f..4da63ac8443f3b53dc88c4c477b990368fc717ea 100644 GIT binary patch literal 41495 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�ubkKohv#^P~&1lSCn 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 diff --git a/export_valid_profiles.py b/export_valid_profiles.py index 36fe297..b1d622a 100644 --- a/export_valid_profiles.py +++ b/export_valid_profiles.py @@ -6,15 +6,15 @@ import xlsxwriter import params from pojo.ReserveResultPojo import ReserveResultPojo from pojo.contact_pojo import ContactPojo -from utils.excel_reader import ExcelHelper -def get_random_id_number ()-> str: + +def get_random_id_number() -> str: # write_the_valid_profiles_to_excel() S = 8 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. - ran = ''.join(random.choices(string.digits, k = S)) - id_number = "57"+str(ran) - print("The randomly generated string is : 94" + str(ran)) # print the random data + ran = ''.join(random.choices(string.digits, k=S)) + id_number = "57" + str(ran) + print("The randomly generated string is : 94" + str(ran)) # print the random data return id_number @@ -36,6 +36,10 @@ def write_the_valid_profiles_to_excel(): contact = ContactPojo(reserve_pojo.phone, passport_number=get_random_id_number(), last_name=reserve_pojo.lastName, first_name=reserve_pojo.firstName, ccid="", mail=reserve_pojo.email, position=0) + seed = 8 # number of characters in the string. + # call random.choices() string module to find the string in Uppercase + numeric data. + ran = ''.join(random.choices(string.digits, k=seed)) + contact.mail = "{}_{}{}@163.com".format(contact.first_name, contact.last_name, ran) # contact.passport = get_random_id_number() # if contact.passport == None or len(contact.passport) == 0: # old_contact = [item for item in exist_contacts if item.mail == contact.mail] @@ -67,7 +71,6 @@ def write_the_valid_profiles_to_excel(): workbook.close() - if __name__ == '__main__': # get_random_id_number() - write_the_valid_profiles_to_excel() \ No newline at end of file + write_the_valid_profiles_to_excel() diff --git a/logs/AppLogging.py b/logs/AppLogging.py index a9f9f49..ac9be75 100644 --- a/logs/AppLogging.py +++ b/logs/AppLogging.py @@ -8,4 +8,4 @@ def init_logger(): filemode='a', format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', datefmt='%D:%H:%M:%S', - level=logging.INFO) + level=logging.DEBUG) diff --git a/main.py b/main.py index e609f7d..dc29cab 100644 --- a/main.py +++ b/main.py @@ -20,7 +20,7 @@ from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper from utils.message_receiver import MessageReceiver -OTP_TIMEOUT = 120 +OTP_TIMEOUT = 180 is_finished = False commandor = CommandorPage() thread_event = None @@ -69,7 +69,7 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - current_gsm_modem.deleteMultipleStoredSms(memory="SM") + # current_gsm_modem.deleteMultipleStoredSms(memory="SM") serial_modem.modem.smsReceivedCallback = handle_sms global is_finished is_finished = False @@ -164,14 +164,13 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): slot_number = 1 slot_sum = 2 - for i in reversed(range(slot_number, slot_sum + 1)): + for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) card_pool.switch_to_slot(i) modem_pool = ModemPool(get_devices_ports()) modem_pool.reset_all_modems() modem_list = init_modems() - # create listeners for chaque modem # read the contact, and contact the 2 objects together excel_reader = ExcelHelper() contacts = excel_reader.read_contacts() @@ -183,7 +182,7 @@ def start_book(): # get contact for current modem modem.get_ccid() # find the contact with ccid - contact = [contact for contact in contacts if contact.ccid == modem.ccid] + contact = [contact for contact in contacts if contact.ccid.replace("F", "") == modem.ccid] if len(contact) > 0: modem.phone_number = contact[0].phone modem.contact = contact[0] @@ -215,5 +214,5 @@ if __name__ == '__main__': logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) start_listen() - start_book() + # start_book() # card_pool.switch_to_slot(12) diff --git a/wait_for_sms.py b/wait_for_sms.py index 82a22a3..b5d4afe 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -50,7 +50,7 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - current_gsm_modem.deleteMultipleStoredSms(memory="SM") + # current_gsm_modem.deleteMultipleStoredSms(memory="MT") serial_modem.modem.smsReceivedCallback = handle_sms global is_finished is_finished = False @@ -85,26 +85,10 @@ def init_modems() -> list: modems.append(serial_modem) return modems - -def on_message_received(ch, method, properties, body): - print(str(body)) - print(" [x] Received {} {}".format(body, datetime.datetime.now())) - # parse the received message - result = ReserveResultPojo.from_json(body) - result.sim_position = current_sim_position - result.slot_position = current_card_pool_slot - logger.info(result) - firebase_store_manager.save(result) - oracle_log_sender.send_appoint_result(result) - # set the flag to True - global is_finished - is_finished = True - - def start_book(): slot_number = 1 slot_sum = 2 - for i in reversed(range(slot_number, slot_sum + 1)): + for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) card_pool.switch_to_slot(i) @@ -122,6 +106,10 @@ def start_book(): try: # get contact for current modem modem.get_ccid() + contact = [contact for contact in contacts if contact.ccid.replace("F","") == modem.ccid.replace("F","")] + if len(contact) > 0: + modem.phone_number = contact[0].phone + modem.contact = contact[0] start_to_handle_sms(modem) except Exception as error: print(error)