From eebb76eb2acf65739445e4805e06767bf5b867bc Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Mon, 21 Feb 2022 15:58:33 +0100 Subject: [PATCH] peut prendre RDV automatiquement --- contact.xlsx | Bin 33640 -> 33638 bytes excel_reader.py | 3 ++- main.py | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index e7945f03b8e9ee5293c3138160f2a0f4f21db728..83ac84285785df25e84b1a426979b71fca9bf896 100644 GIT binary patch delta 17398 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 BBAfsK delta 17371 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 HgZ%#kGk$OI diff --git a/excel_reader.py b/excel_reader.py index 6523461..65996d3 100644 --- a/excel_reader.py +++ b/excel_reader.py @@ -19,7 +19,8 @@ class ExcelReader: last_name=last_name, first_name=first_name, ccid=contact_dict['ccid'], - passport_number=contact_dict['passport'], mail=contact_dict['email']) + passport_number=contact_dict['passport'], + mail=contact_dict['email']) contact_list.append(contact) return contact_list diff --git a/main.py b/main.py index 5f597ab..bb0acf7 100644 --- a/main.py +++ b/main.py @@ -12,8 +12,9 @@ from pojo.serial_modem import SerialModem from utils.logging import init_logger BAUDRATE = 115200 -OTP_TIMEOUT = 120 +OTP_TIMEOUT = 60 sms_received = False +commandor = Commandor() def get_devices_ports() -> list: @@ -94,13 +95,17 @@ def start_to_handle_sms(serial_modem: SerialModem): def handle_sms(sms): - logger.info(u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text)) - global sms_received - sms_received = True + logger.info( + u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text)) # extract the otp number logger.info("try to extract the otp") match = re.search(r'\d{6,8}', sms.text) - logger.info("otp is " + match.group(0)) + otp = match.group(0) + logger.info("otp is " + otp) + commandor.send_otp(otp) + time.sleep(20) + global sms_received + sms_received = True def init_modems() -> list: @@ -125,5 +130,7 @@ if __name__ == '__main__': # create modems for all the available port modem_list = init_modems() # create listeners for chaque modem + for modem in modem_list: + commandor.start_page(modem.contact) start_to_handle_sms(modem)