Merge branch 'master' into feature/playwright

This commit is contained in:
2022-03-21 18:02:50 +01:00
6 changed files with 43 additions and 37 deletions
+22 -11
View File
@@ -3,7 +3,7 @@ import time
from pojo.contact_pojo import ContactPojo from pojo.contact_pojo import ContactPojo
PACKAGE_NAME = "com.lpa.appointement" PACKAGE_NAME = "com.opera.mini.android"
ACTIVITY_NAME = "MainActivity" ACTIVITY_NAME = "MainActivity"
BROADCAST_ACTION = "com.lpa.appointement.broadcast" BROADCAST_ACTION = "com.lpa.appointement.broadcast"
@@ -16,28 +16,39 @@ class Commandor:
def start_page(self, contact: ContactPojo): def start_page(self, contact: ContactPojo):
# specifying an explicit component name # specifying an explicit component name
self.clear_app_data() self.clear_app_data()
cmd = "/Users/panlei/Library/Android/sdk/platform-tools/adb shell am start -n {}/.{} --es \"first_name\" \"{}\" --es \"last_name\" \"{}\" --es \"phone\" \"{}\" --es \"email\" \"{}\" --es \"passport\" \"{}\"".format(
subprocess.call( PACKAGE_NAME, ACTIVITY_NAME, contact.last_name, contact.first_name, "+33{}".format(contact.phone),
"/Users/panlei/Library/Android/sdk/platform-tools/adb shell am start -n {}/.{} --es \"first_name\" \"{}\" --es \"last_name\" \"{}\" --es \"phone\" \"{}\" --es \"email\" \"{}\" --es \"passport\" \"{}\"".format( "{}_{}@gmail.com".format(contact.first_name, contact.last_name), contact.passport)
PACKAGE_NAME, ACTIVITY_NAME, contact.first_name, contact.last_name, contact.phone, "{}_{}@gmail.com".format(contact.first_name,contact.last_name), contact.passport), shell=True) print("cmd is " + cmd)
subprocess.call(cmd, shell=True)
pass pass
def clear_app_data(self): def clear_app_data(self):
subprocess.call("/Users/panlei/Library/Android/sdk/platform-tools/adb shell pm clear {}".format(PACKAGE_NAME), shell=True) subprocess.call("/Users/panlei/Library/Android/sdk/platform-tools/adb shell pm clear {}".format(PACKAGE_NAME),
shell=True)
def send_otp(self, otp: str): def send_otp(self, otp: str):
subprocess.call( subprocess.call(
"/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a {} --es otp \"{}\"".format(BROADCAST_ACTION, otp), shell=True) "/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a {} --es otp \"{}\"".format(
BROADCAST_ACTION, otp), shell=True)
pass pass
def reset_air_plan_mode(self): def reset_air_plan_mode(self):
subprocess.call("/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 1", shell=True) subprocess.call(
"/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 1",
shell=True)
time.sleep(1) time.sleep(1)
subprocess.call("/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE", shell=True) subprocess.call(
"/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE",
shell=True)
time.sleep(1) time.sleep(1)
subprocess.call("/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 0", shell=True) subprocess.call(
"/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 0",
shell=True)
time.sleep(1) time.sleep(1)
subprocess.call("/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE", shell=True) subprocess.call(
"/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE",
shell=True)
time.sleep(10) time.sleep(10)
BIN
View File
Binary file not shown.
+6 -1
View File
@@ -12,16 +12,18 @@ from pojo.ReserveResultPojo import PublishType
# Log subjects # Log subjects
LOG_SUBJECT_EVENT = "EVENT" LOG_SUBJECT_EVENT = "EVENT"
LOG_SUBJECT_SMS = "SMS"
SUBJECT_SIM_INFO = "sim_card"
# Log type # Log type
TYPE_EVENT_CHECK_RESULTS = "EVENT_CHECK_RESULTS" TYPE_EVENT_CHECK_RESULTS = "EVENT_CHECK_RESULTS"
TYPE_EVENT_RESET_ALL_SIM_CARDS = "EVENT_RESET_ALL_SIM_CARDS" TYPE_EVENT_RESET_ALL_SIM_CARDS = "EVENT_RESET_ALL_SIM_CARDS"
TYPE_EVENT_CHANGE_SLOT = "EVENT_CHANGE_SLOT" TYPE_EVENT_CHANGE_SLOT = "EVENT_CHANGE_SLOT"
TYPE_SMS_RECEIVED = "TYPE_SMS_RECEIVED"
LOG_ERROR = "ERROR" LOG_ERROR = "ERROR"
LOG_TYPE_INFO = "INFO" LOG_TYPE_INFO = "INFO"
LOG_APPOINTMENT_ERROR = "APPOINTMENT_ERROR" LOG_APPOINTMENT_ERROR = "APPOINTMENT_ERROR"
LOG_APPOINTMENT_TIMEOUT = "TIMEOUT" LOG_APPOINTMENT_TIMEOUT = "TIMEOUT"
LOG_APPOINTMENT_SUCCESS = "SUCCESS" LOG_APPOINTMENT_SUCCESS = "SUCCESS"
SUBJECT_SIM_INFO = "sim_card"
class LogSender: class LogSender:
@@ -57,6 +59,9 @@ class LogSender:
) )
return response return response
def send_sms_reception_log(self, phone, sms_text):
msg = "phone:{}, sms:{}".format(phone, sms_text)
self.send_log(msg=msg, subject=LOG_SUBJECT_SMS, type=TYPE_SMS_RECEIVED)
if __name__ == '__main__': if __name__ == '__main__':
init_logger() init_logger()
+6 -22
View File
@@ -11,7 +11,8 @@ import params
from modems.ModemPool import ModemPool from modems.ModemPool import ModemPool
from modems.card_pool import CardPool from modems.card_pool import CardPool
from commandor import Commandor from commandor import Commandor
from logs.LogSender import LOG_APPOINTMENT_TIMEOUT, LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS from logs.LogSender import LOG_APPOINTMENT_TIMEOUT, LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS, LOG_SUBJECT_SMS, \
TYPE_SMS_RECEIVED
from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender
from pojo.ReserveResultPojo import ReserveResultPojo from pojo.ReserveResultPojo import ReserveResultPojo
from utils.excel_reader import ExcelHelper from utils.excel_reader import ExcelHelper
@@ -19,7 +20,7 @@ from pojo.serial_modem import SerialModem
from logs.AppLogging import init_logger from logs.AppLogging import init_logger
from utils.message_receiver import MessageReceiver from utils.message_receiver import MessageReceiver
OTP_TIMEOUT = 80 OTP_TIMEOUT = 600
is_finished = False is_finished = False
commandor = Commandor() commandor = Commandor()
contacts = [] contacts = []
@@ -42,7 +43,6 @@ def send_command(cmd: str, ser, wait_time_in_s: int = 0) -> bytes:
time.sleep(1) time.sleep(1)
count = count + 1 count = count + 1
msg = ser.read(100) msg = ser.read(100)
# msg = ser.read(100)
print(msg) print(msg)
return msg return msg
@@ -69,6 +69,7 @@ def timeout_occurred(serial_modem: SerialModem):
def start_to_handle_sms(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem):
global current_gsm_modem global current_gsm_modem
current_gsm_modem = serial_modem.modem current_gsm_modem = serial_modem.modem
current_gsm_modem.deleteMultipleStoredSms(memory="SM")
serial_modem.modem.smsReceivedCallback = handle_sms serial_modem.modem.smsReceivedCallback = handle_sms
global is_finished global is_finished
is_finished = False is_finished = False
@@ -93,6 +94,7 @@ def handle_sms(sms):
u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text)) u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text))
# extract the otp number # extract the otp number
date = str(sms.time)[0:10] date = str(sms.time)[0:10]
params.oracle_log_sender.send_sms_reception_log(sms.number, sms.text)
if date == str(datetime.date.today()): if date == str(datetime.date.today()):
logger.info("this sms is for today") logger.info("this sms is for today")
if "rendez-vous" in sms.text: if "rendez-vous" in sms.text:
@@ -148,23 +150,6 @@ def start_listen():
receiver.start_listener(on_message_received) receiver.start_listener(on_message_received)
def read_all_the_phone_number():
params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS)
slot_number = 1
global current_card_pool_slot
slot_sum = 30
# card_pool.switch_to_slot(29)
firebase_store_manager.clear_all_sim_info()
for i in range(slot_number, slot_sum + 1):
card_pool.reset()
logger.info("will switch to " + str(i))
current_card_pool_slot = i
card_pool.switch_to_slot(i)
modem_pool = ModemPool(get_devices_ports())
modem_pool.reset_all_modems()
modem_pool.get_raw_phone_number(i)
def start_book(): def start_book():
slot_number = 1 slot_number = 1
slot_sum = 22 slot_sum = 22
@@ -199,7 +184,7 @@ def start_book():
if modem.contact: if modem.contact:
logger.info("contact found for this ccid") logger.info("contact found for this ccid")
signal = modem.modem.signalStrength signal = modem.modem.signalStrength
logger.info("信号强度: "+str(signal)) logger.info("信号强度: " + str(signal))
commandor.start_page(modem.contact) commandor.start_page(modem.contact)
start_to_handle_sms(modem) start_to_handle_sms(modem)
except Exception as error: except Exception as error:
@@ -214,4 +199,3 @@ if __name__ == '__main__':
start_listen() start_listen()
start_book() start_book()
# card_pool.switch_to_slot(12) # card_pool.switch_to_slot(12)
+8 -2
View File
@@ -15,10 +15,16 @@ class SerialModem():
self.ccid = ccid self.ccid = ccid
def get_ccid(self): def get_ccid(self):
cmd = "AT+CCID\r" cmd = "AT+CCID"
self.modem.connect("0000") self.modem.connect("0000")
print("try to get ccid") print("try to get ccid")
response = self.modem.write(cmd, True) response = self.modem.write(cmd, True)
self.ccid = response[0].split(" ")[1].replace("\"", "") self.ccid = response[0].split(" ")[1].replace("\"", "")
print("The SIM card ccid is:" + self.ccid) print("The SIM card ccid is:" + self.ccid)
print("The SIM phone number is:" + str(self.modem.ownNumber)) # print("try to get phone number")
# cmd_phone_number = "AT+CPBS=ON"
# openBook = self.modem.write(cmd_phone_number, True)
# print("response is :" + str(openBook))
# cmd_phone_number = "AT+CNUM"
# response2 = self.modem.write(cmd_phone_number, True)
# print("The SIM phone number is:" + str(response2))
+1 -1
View File
@@ -10,7 +10,7 @@ from main import card_pool, get_devices_ports
def read_all_the_phone_number(): def read_all_the_phone_number():
params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS)
slot_number = 1 slot_number = 1
slot_sum = 22 slot_sum = 23
# card_pool.switch_to_slot(29) # card_pool.switch_to_slot(29)
params.firebase_store_manager.clear_all_sim_info() params.firebase_store_manager.clear_all_sim_info()
for i in range(slot_number, slot_sum + 1): for i in range(slot_number, slot_sum + 1):