add log support

This commit is contained in:
2022-02-27 18:09:01 +01:00
parent f720815e32
commit d910ec65a3
12 changed files with 73 additions and 55 deletions
+7 -4
View File
@@ -5,18 +5,21 @@ import serial
from serial import Serial
from SIMError import SIMError
from logs.LogSender import LogSender, LOG_ERROR
from utils.excel_reader import ExcelHelper
class ModemPool:
BAUDRATE = 115200
my_phone = "my_phone"
phone_number_position = 10
TAG = "ModemPool"
def __init__(self, port_list: list):
self._port_list = port_list
self._serial_list = []
self._excel_helper = ExcelHelper()
self._log_sender = LogSender()
for port in self._port_list:
ser = serial.Serial(port, self.BAUDRATE, timeout=1)
self._serial_list.append(ser)
@@ -24,13 +27,14 @@ class ModemPool:
def reset_all_modems(self):
for ser in self._serial_list:
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
time.sleep(20)
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)
self._log_sender.send_log(msg, subject=self.TAG, type=LOG_ERROR)
return msg
def get_raw_phone_number(self, slot_position):
for index, ser in enumerate(self._serial_list):
@@ -72,7 +76,6 @@ class ModemPool:
return True
def _send_command(self, cmd: str, ser, wait_time_in_s: int = 0) -> bytes:
# print("send command {}".format(cmd))
ser.write(cmd.encode())
msg = ser.read(100)
count = 0
+1 -1
View File
@@ -2,7 +2,7 @@ import logging
import serial
PORT = "/dev/tty.usbmodem11301"
PORT = "/dev/tty.usbmodem112101"
BAUDRATE = 115200
+17 -11
View File
@@ -1,19 +1,18 @@
import time
import playwright
from playwright.sync_api import sync_playwright
from db.DbManager import DataManager
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
def check_result_page(url):
def check_result_page(url) -> bool:
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)
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")
@@ -21,15 +20,22 @@ def run(playwright, url):
print(url_to_check)
page.goto(url_to_check)
print(page.title())
print(page.content())
content = page.content()
browser.close()
if SORRY_SENTENCE in content:
print("refused")
return False
else:
print("accepted")
return True
# need to start at 21h00
if __name__ == '__main__':
# get the list
db_manager = DataManager()
for appointment in db_manager.get_all_successful_items():
result = ReserveResultPojo.from_firestore_dict(appointment.to_dict())
check_result_page(result.url)
print(result)
collection = db_manager.get_all_successful_items()
for appointment in collection.stream():
reserve_pojo = ReserveResultPojo.from_firestore_dict(appointment.to_dict())
result = check_result_page(reserve_pojo.url)
collection.document(reserve_pojo.id).update({u'accepted': result})
+3 -3
View File
@@ -32,6 +32,6 @@ class Commandor:
if __name__ == '__main__':
commandor = Commandor()
# contact = ContactPojo("0649614591", "E24183897", "LIU", "Yusi", "AZEER", "lei-pan@outlook.com")
# commandor.start_page(contact)
commandor.send_otp("262353")
contact = ContactPojo("0649614591", "E24183897", "LIU", "Yusi", "AZEER", "lei-pan@outlook.com")
commandor.start_page(contact)
# commandor.send_otp("262353")
+1 -1
View File
@@ -22,7 +22,7 @@ class DataManager:
def get_all_successful_items(self):
doc_ref = self._db.collection(u'2022-02-25')
return doc_ref.stream()
return doc_ref
def save(self, result: ReserveResultPojo):
if result.type == PublishType.SUCCESS:
+4 -1
View File
@@ -6,7 +6,10 @@ import oci
from oci.loggingingestion import LoggingClient
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:
View File
+31 -33
View File
@@ -1,5 +1,4 @@
import datetime
import json
import logging
import re
import sys
@@ -8,13 +7,13 @@ import time
from gsmmodem import GsmModem
from ModemPool import ModemPool
from card_pool import CardPool
from card_pool import CardPool, PORT
from commandor import Commandor
from db.DbManager import DataManager
from pojo.ReserveResultPojo import ReserveResultPojo, PublishType
from pojo.ReserveResultPojo import ReserveResultPojo
from utils.excel_reader import ExcelHelper
from pojo.serial_modem import SerialModem
from utils.AppLogging import init_logger
from logs.AppLogging import init_logger
from utils.message_receiver import MessageReceiver
BAUDRATE = 115200
@@ -22,7 +21,6 @@ OTP_TIMEOUT = 60
is_finished = False
commandor = Commandor()
timeout_contact_list = []
PORT = "/dev/tty.usbmodem1301"
# ser = serial.Serial(PORT, BAUDRATE, timeout=1)
@@ -31,22 +29,22 @@ db_manager = DataManager()
def get_devices_ports() -> list:
return [
"/dev/tty.usbmodem1121101",
"/dev/tty.usbmodem1121103",
"/dev/tty.usbmodem1121105",
"/dev/tty.usbmodem1121107",
"/dev/tty.usbmodem1121201",
"/dev/tty.usbmodem1121203",
"/dev/tty.usbmodem1121205",
"/dev/tty.usbmodem1121207",
"/dev/tty.usbmodem1121301",
## "/dev/tty.usbmodem1121303",
"/dev/tty.usbmodem1121305",
"/dev/tty.usbmodem1121307",
"/dev/tty.usbmodem1121401",
"/dev/tty.usbmodem1121403",
"/dev/tty.usbmodem1121405",
"/dev/tty.usbmodem1121407"
"/dev/tty.usbmodem111101",
"/dev/tty.usbmodem111103",
"/dev/tty.usbmodem111105",
"/dev/tty.usbmodem111107",
"/dev/tty.usbmodem111201",
"/dev/tty.usbmodem111203",
"/dev/tty.usbmodem111205",
"/dev/tty.usbmodem111207",
"/dev/tty.usbmodem111301",
## "/dev/tty.usbmodem111303",
"/dev/tty.usbmodem111305",
"/dev/tty.usbmodem111307",
"/dev/tty.usbmodem111401",
"/dev/tty.usbmodem111403",
"/dev/tty.usbmodem111405",
"/dev/tty.usbmodem111407"
]
@@ -171,26 +169,26 @@ def start_listen():
def read_all_the_phone_number():
card_pool = CardPool("/dev/tty.usbmodem11301")
card_pool = CardPool(PORT)
slot_number = 1
slot_sum = 32
card_pool.switch_to_slot(15)
slot_sum = 28
# card_pool.switch_to_slot(10)
# for i in range(10, slot_sum + 1):
# card_pool.reset()
# print("will switch to " + str(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)
for i in range(1, slot_sum + 1):
card_pool.reset()
print("will switch to " + str(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)
if __name__ == '__main__':
init_logger()
logger = logging.getLogger()
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
# read_all_the_phone_number()
start_listen()
read_all_the_phone_number()
# start_listen()
# reset the sim card pool
# send_command("AT+SWIT01-0001\r", ser)
+7
View File
@@ -12,6 +12,9 @@ class ExcelHelper:
def write_phone(self, 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.to_excel("phone_list.xlsx")
@@ -37,3 +40,7 @@ class ExcelHelper:
if __name__ == '__main__':
helper = ExcelHelper()
helper.write_phone("88649614591")
helper.write_phone("88649614591")
helper.write_phone("88649614591")
helper.write_phone("8864961591")
helper.write_phone("88649614591")
+1
View File
@@ -0,0 +1 @@
88649614591,88649614591,88649614591,8864961591,88649614591,
Binary file not shown.