add log support
This commit is contained in:
+7
-4
@@ -5,18 +5,21 @@ import serial
|
|||||||
from serial import Serial
|
from serial import Serial
|
||||||
|
|
||||||
from SIMError import SIMError
|
from SIMError import SIMError
|
||||||
|
from logs.LogSender import LogSender, LOG_ERROR
|
||||||
from utils.excel_reader import ExcelHelper
|
from utils.excel_reader import ExcelHelper
|
||||||
|
|
||||||
|
|
||||||
class ModemPool:
|
class ModemPool:
|
||||||
BAUDRATE = 115200
|
BAUDRATE = 115200
|
||||||
my_phone = "my_phone"
|
|
||||||
phone_number_position = 10
|
phone_number_position = 10
|
||||||
|
TAG = "ModemPool"
|
||||||
|
|
||||||
def __init__(self, port_list: list):
|
def __init__(self, port_list: list):
|
||||||
self._port_list = port_list
|
self._port_list = port_list
|
||||||
self._serial_list = []
|
self._serial_list = []
|
||||||
self._excel_helper = ExcelHelper()
|
self._excel_helper = ExcelHelper()
|
||||||
|
self._log_sender = LogSender()
|
||||||
|
|
||||||
for port in self._port_list:
|
for port in self._port_list:
|
||||||
ser = serial.Serial(port, self.BAUDRATE, timeout=1)
|
ser = serial.Serial(port, self.BAUDRATE, timeout=1)
|
||||||
self._serial_list.append(ser)
|
self._serial_list.append(ser)
|
||||||
@@ -24,13 +27,14 @@ class ModemPool:
|
|||||||
def reset_all_modems(self):
|
def reset_all_modems(self):
|
||||||
for ser in self._serial_list:
|
for ser in self._serial_list:
|
||||||
self._send_command("AT+CFUN=1,1\r", ser)
|
self._send_command("AT+CFUN=1,1\r", ser)
|
||||||
# send_command("AT+RESET\r", ser)
|
|
||||||
# wait for 20 second, so that the modem can init all the sims
|
# wait for 20 second, so that the modem can init all the sims
|
||||||
time.sleep(20)
|
time.sleep(20)
|
||||||
|
|
||||||
def _generate_error_msg(self, slot_position, index, error: SIMError):
|
def _generate_error_msg(self, slot_position, index, error: SIMError):
|
||||||
return "error for slot({}) SIM({}), error:{}".format(slot_position, index + 1,
|
msg = "slot({}) SIM({}), error:{}".format(slot_position, index + 1,
|
||||||
error.value)
|
error.value)
|
||||||
|
self._log_sender.send_log(msg, subject=self.TAG, type=LOG_ERROR)
|
||||||
|
return msg
|
||||||
|
|
||||||
def get_raw_phone_number(self, slot_position):
|
def get_raw_phone_number(self, slot_position):
|
||||||
for index, ser in enumerate(self._serial_list):
|
for index, ser in enumerate(self._serial_list):
|
||||||
@@ -72,7 +76,6 @@ class ModemPool:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def _send_command(self, cmd: str, ser, wait_time_in_s: int = 0) -> bytes:
|
def _send_command(self, cmd: str, ser, wait_time_in_s: int = 0) -> bytes:
|
||||||
# print("send command {}".format(cmd))
|
|
||||||
ser.write(cmd.encode())
|
ser.write(cmd.encode())
|
||||||
msg = ser.read(100)
|
msg = ser.read(100)
|
||||||
count = 0
|
count = 0
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ import logging
|
|||||||
|
|
||||||
import serial
|
import serial
|
||||||
|
|
||||||
PORT = "/dev/tty.usbmodem11301"
|
PORT = "/dev/tty.usbmodem112101"
|
||||||
|
|
||||||
BAUDRATE = 115200
|
BAUDRATE = 115200
|
||||||
|
|
||||||
|
|||||||
+17
-11
@@ -1,19 +1,18 @@
|
|||||||
import time
|
|
||||||
|
|
||||||
import playwright
|
|
||||||
from playwright.sync_api import sync_playwright
|
from playwright.sync_api import sync_playwright
|
||||||
|
|
||||||
from db.DbManager import DataManager
|
from db.DbManager import DataManager
|
||||||
from pojo.ReserveResultPojo import ReserveResultPojo
|
from pojo.ReserveResultPojo import ReserveResultPojo
|
||||||
|
|
||||||
|
SORRY_SENTENCE = "we are extremely sorry that we were not able to fulfill your request this time"
|
||||||
|
|
||||||
|
|
||||||
# check result with playright
|
# check result with playright
|
||||||
def check_result_page(url):
|
def check_result_page(url) -> bool:
|
||||||
with sync_playwright() as p:
|
with sync_playwright() as p:
|
||||||
run(p, url)
|
return run(p, url)
|
||||||
|
|
||||||
|
|
||||||
def run(playwright, url):
|
def run(playwright, url) -> bool:
|
||||||
browser = playwright.webkit.launch(headless=False)
|
browser = playwright.webkit.launch(headless=False)
|
||||||
page = browser.new_page(
|
page = browser.new_page(
|
||||||
user_agent="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36")
|
user_agent="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36")
|
||||||
@@ -21,15 +20,22 @@ def run(playwright, url):
|
|||||||
print(url_to_check)
|
print(url_to_check)
|
||||||
page.goto(url_to_check)
|
page.goto(url_to_check)
|
||||||
print(page.title())
|
print(page.title())
|
||||||
print(page.content())
|
content = page.content()
|
||||||
browser.close()
|
browser.close()
|
||||||
|
if SORRY_SENTENCE in content:
|
||||||
|
print("refused")
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
print("accepted")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
# need to start at 21h00
|
# need to start at 21h00
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# get the list
|
# get the list
|
||||||
db_manager = DataManager()
|
db_manager = DataManager()
|
||||||
for appointment in db_manager.get_all_successful_items():
|
collection = db_manager.get_all_successful_items()
|
||||||
result = ReserveResultPojo.from_firestore_dict(appointment.to_dict())
|
for appointment in collection.stream():
|
||||||
check_result_page(result.url)
|
reserve_pojo = ReserveResultPojo.from_firestore_dict(appointment.to_dict())
|
||||||
print(result)
|
result = check_result_page(reserve_pojo.url)
|
||||||
|
collection.document(reserve_pojo.id).update({u'accepted': result})
|
||||||
|
|||||||
+3
-3
@@ -32,6 +32,6 @@ class Commandor:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
commandor = Commandor()
|
commandor = Commandor()
|
||||||
# contact = ContactPojo("0649614591", "E24183897", "LIU", "Yusi", "AZEER", "lei-pan@outlook.com")
|
contact = ContactPojo("0649614591", "E24183897", "LIU", "Yusi", "AZEER", "lei-pan@outlook.com")
|
||||||
# commandor.start_page(contact)
|
commandor.start_page(contact)
|
||||||
commandor.send_otp("262353")
|
# commandor.send_otp("262353")
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ class DataManager:
|
|||||||
|
|
||||||
def get_all_successful_items(self):
|
def get_all_successful_items(self):
|
||||||
doc_ref = self._db.collection(u'2022-02-25')
|
doc_ref = self._db.collection(u'2022-02-25')
|
||||||
return doc_ref.stream()
|
return doc_ref
|
||||||
|
|
||||||
def save(self, result: ReserveResultPojo):
|
def save(self, result: ReserveResultPojo):
|
||||||
if result.type == PublishType.SUCCESS:
|
if result.type == PublishType.SUCCESS:
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ import oci
|
|||||||
from oci.loggingingestion import LoggingClient
|
from oci.loggingingestion import LoggingClient
|
||||||
from oci.loggingingestion.models import PutLogsDetails, LogEntryBatch, LogEntry
|
from oci.loggingingestion.models import PutLogsDetails, LogEntryBatch, LogEntry
|
||||||
|
|
||||||
from utils.AppLogging import init_logger
|
from logs.AppLogging import init_logger
|
||||||
|
|
||||||
|
LOG_ERROR = "ERROR"
|
||||||
|
LOG_INFO = "INFO"
|
||||||
|
|
||||||
|
|
||||||
class LogSender:
|
class LogSender:
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import json
|
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
@@ -8,13 +7,13 @@ import time
|
|||||||
from gsmmodem import GsmModem
|
from gsmmodem import GsmModem
|
||||||
|
|
||||||
from ModemPool import ModemPool
|
from ModemPool import ModemPool
|
||||||
from card_pool import CardPool
|
from card_pool import CardPool, PORT
|
||||||
from commandor import Commandor
|
from commandor import Commandor
|
||||||
from db.DbManager import DataManager
|
from db.DbManager import DataManager
|
||||||
from pojo.ReserveResultPojo import ReserveResultPojo, PublishType
|
from pojo.ReserveResultPojo import ReserveResultPojo
|
||||||
from utils.excel_reader import ExcelHelper
|
from utils.excel_reader import ExcelHelper
|
||||||
from pojo.serial_modem import SerialModem
|
from pojo.serial_modem import SerialModem
|
||||||
from utils.AppLogging import init_logger
|
from logs.AppLogging import init_logger
|
||||||
from utils.message_receiver import MessageReceiver
|
from utils.message_receiver import MessageReceiver
|
||||||
|
|
||||||
BAUDRATE = 115200
|
BAUDRATE = 115200
|
||||||
@@ -22,7 +21,6 @@ OTP_TIMEOUT = 60
|
|||||||
is_finished = False
|
is_finished = False
|
||||||
commandor = Commandor()
|
commandor = Commandor()
|
||||||
timeout_contact_list = []
|
timeout_contact_list = []
|
||||||
PORT = "/dev/tty.usbmodem1301"
|
|
||||||
|
|
||||||
# ser = serial.Serial(PORT, BAUDRATE, timeout=1)
|
# ser = serial.Serial(PORT, BAUDRATE, timeout=1)
|
||||||
|
|
||||||
@@ -31,22 +29,22 @@ db_manager = DataManager()
|
|||||||
|
|
||||||
def get_devices_ports() -> list:
|
def get_devices_ports() -> list:
|
||||||
return [
|
return [
|
||||||
"/dev/tty.usbmodem1121101",
|
"/dev/tty.usbmodem111101",
|
||||||
"/dev/tty.usbmodem1121103",
|
"/dev/tty.usbmodem111103",
|
||||||
"/dev/tty.usbmodem1121105",
|
"/dev/tty.usbmodem111105",
|
||||||
"/dev/tty.usbmodem1121107",
|
"/dev/tty.usbmodem111107",
|
||||||
"/dev/tty.usbmodem1121201",
|
"/dev/tty.usbmodem111201",
|
||||||
"/dev/tty.usbmodem1121203",
|
"/dev/tty.usbmodem111203",
|
||||||
"/dev/tty.usbmodem1121205",
|
"/dev/tty.usbmodem111205",
|
||||||
"/dev/tty.usbmodem1121207",
|
"/dev/tty.usbmodem111207",
|
||||||
"/dev/tty.usbmodem1121301",
|
"/dev/tty.usbmodem111301",
|
||||||
## "/dev/tty.usbmodem1121303",
|
## "/dev/tty.usbmodem111303",
|
||||||
"/dev/tty.usbmodem1121305",
|
"/dev/tty.usbmodem111305",
|
||||||
"/dev/tty.usbmodem1121307",
|
"/dev/tty.usbmodem111307",
|
||||||
"/dev/tty.usbmodem1121401",
|
"/dev/tty.usbmodem111401",
|
||||||
"/dev/tty.usbmodem1121403",
|
"/dev/tty.usbmodem111403",
|
||||||
"/dev/tty.usbmodem1121405",
|
"/dev/tty.usbmodem111405",
|
||||||
"/dev/tty.usbmodem1121407"
|
"/dev/tty.usbmodem111407"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@@ -171,26 +169,26 @@ def start_listen():
|
|||||||
|
|
||||||
|
|
||||||
def read_all_the_phone_number():
|
def read_all_the_phone_number():
|
||||||
card_pool = CardPool("/dev/tty.usbmodem11301")
|
card_pool = CardPool(PORT)
|
||||||
slot_number = 1
|
slot_number = 1
|
||||||
slot_sum = 32
|
slot_sum = 28
|
||||||
card_pool.switch_to_slot(15)
|
# card_pool.switch_to_slot(10)
|
||||||
|
|
||||||
# for i in range(10, slot_sum + 1):
|
for i in range(1, slot_sum + 1):
|
||||||
# card_pool.reset()
|
card_pool.reset()
|
||||||
# print("will switch to " + str(i))
|
print("will switch to " + str(i))
|
||||||
# card_pool.switch_to_slot(i)
|
card_pool.switch_to_slot(i)
|
||||||
# modem_pool = ModemPool(get_devices_ports())
|
modem_pool = ModemPool(get_devices_ports())
|
||||||
# modem_pool.reset_all_modems()
|
modem_pool.reset_all_modems()
|
||||||
# modem_pool.get_raw_phone_number(i)
|
modem_pool.get_raw_phone_number(i)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
init_logger()
|
init_logger()
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
||||||
# read_all_the_phone_number()
|
read_all_the_phone_number()
|
||||||
start_listen()
|
# start_listen()
|
||||||
# reset the sim card pool
|
# reset the sim card pool
|
||||||
# send_command("AT+SWIT01-0001\r", ser)
|
# send_command("AT+SWIT01-0001\r", ser)
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ class ExcelHelper:
|
|||||||
|
|
||||||
def write_phone(self, phone_number):
|
def write_phone(self, phone_number):
|
||||||
new_df = pandas.Series([phone_number])
|
new_df = pandas.Series([phone_number])
|
||||||
|
f = open("phone_list.txt", "a")
|
||||||
|
f.write("{},".format(phone_number))
|
||||||
|
f.close()
|
||||||
self._df = pandas.concat([self._df, new_df])
|
self._df = pandas.concat([self._df, new_df])
|
||||||
self._df.to_excel("phone_list.xlsx")
|
self._df.to_excel("phone_list.xlsx")
|
||||||
|
|
||||||
@@ -37,3 +40,7 @@ class ExcelHelper:
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
helper = ExcelHelper()
|
helper = ExcelHelper()
|
||||||
helper.write_phone("88649614591")
|
helper.write_phone("88649614591")
|
||||||
|
helper.write_phone("88649614591")
|
||||||
|
helper.write_phone("88649614591")
|
||||||
|
helper.write_phone("8864961591")
|
||||||
|
helper.write_phone("88649614591")
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
88649614591,88649614591,88649614591,8864961591,88649614591,
|
||||||
Binary file not shown.
Reference in New Issue
Block a user