diff --git a/.gitignore b/.gitignore
index 4702924..458b7d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,7 @@ utils/*.log
/docs/sim_infos.xlsx
.env
/docs/.~sim_infos.xlsx
+./venv
+out
+lib
+appointment_*.log
diff --git a/contact_all.xlsx b/contact_all.xlsx
index bcdd4c1..d109f01 100644
Binary files a/contact_all.xlsx and b/contact_all.xlsx differ
diff --git a/docs/sim_infos.xlsx b/docs/sim_infos.xlsx
index 8aec01d..126bda2 100644
Binary files a/docs/sim_infos.xlsx and b/docs/sim_infos.xlsx differ
diff --git a/main.py b/main.py
index d371c14..4a6cf96 100644
--- a/main.py
+++ b/main.py
@@ -78,7 +78,7 @@ def start_book(start_slot_number, end_slot_number, store=0):
contacts = excel_reader.read_contacts()
global current_sim_position
current_sim_position = 0
- with ThreadPoolExecutor(max_workers=5) as executor:
+ with ThreadPoolExecutor(max_workers=10) as executor:
for modem in modem_list:
current_sim_position = current_sim_position + 1
try:
@@ -122,6 +122,5 @@ def get_proxy(phone_number):
if __name__ == '__main__':
- # 修改起始行,结束行
- # 第三个参数store等于0的时候是随机,传入1的时候是总店
- start_book(32, 32, store=0)
+ # 修改起始行,结束行, 第三个参数store等于0的时候是随机,传入1的时候是总店
+ start_book(17, 17, store=0)
\ No newline at end of file
diff --git a/modems/ModemPool.py b/modems/ModemPool.py
index 9586b64..1c99278 100644
--- a/modems/ModemPool.py
+++ b/modems/ModemPool.py
@@ -33,11 +33,11 @@ class ModemPool:
def reset_all_modems(self):
self.logger.info("will reset modem pool")
for ser in self._serial_list:
- # may encontre exception here, multi-access to serial port
- time.sleep(2)
- self._send_command("AT+CFUN=1,1\r", ser)
- # wait for 10 second, so that the modem can init all the sims
- time.sleep(10)
+ #等待4秒
+ time.sleep(4)
+ self._send_command("AT+CFUN=1,1\r", ser, 10)
+ #等待15秒,加载新的SIM卡
+ time.sleep(15)
def _generate_error_msg(self, slot_position, index, error: SIMError):
msg = "slot({}) SIM({}), error:{}".format(slot_position, index + 1,
@@ -105,13 +105,22 @@ class ModemPool:
else:
return True
+ def check_response(self, msg:str) -> bool:
+ print("msg is "+msg)
+ # if 'NOT READY' in msg:
+ # return False
+ if 'OK' in msg:
+ return True
+ else:
+ return False
+
def _send_command(self, cmd: str, ser, wait_time_in_s: int = 0) -> bytes:
ser.write(cmd.encode())
msg = None
try:
msg = ser.read(100)
count = 0
- while 'OK' not in str(msg) and count < wait_time_in_s:
+ while not self.check_response(str(msg)) and count < wait_time_in_s:
time.sleep(1)
count = count + 1
msg = ser.read(100)
@@ -125,5 +134,6 @@ class ModemPool:
return self._send_command(cmd, ser, 120)
def close(self):
- for serial in self._serial_list:
- serial.close()
+ pass
+ # for serial in self._serial_list:
+ # serial.close()
diff --git a/notification/AcceptedResultPojo.py b/notification/AcceptedResultPojo.py
index 5bd04ec..7aafbb5 100644
--- a/notification/AcceptedResultPojo.py
+++ b/notification/AcceptedResultPojo.py
@@ -9,7 +9,7 @@ from pojo import ReserveResultPojo
@dataclass
class AcceptedResultPojo:
- def __init__(self, msg: str, slot_position, sim_position, passport, email, name, phone):
+ def __init__(self, msg: str, slot_position, sim_position, passport, email, name, phone, ccid: str, url):
self.sms_msg = msg
self.slot_position = slot_position
self.sim_position = sim_position
@@ -17,9 +17,19 @@ class AcceptedResultPojo:
self.email = email
self.name = name
self.phone = phone
+ self.ccid = ccid
+ self.url = url
def get_accepted_result_from(sms, sim_info: ReserveResultPojo) -> AcceptedResultPojo:
- return AcceptedResultPojo(sms.text, slot_position=sim_info.slot_position, sim_position=sim_info.sim_position,
- passport=sim_info.passport, email=sim_info.email, phone=sim_info.phone,
- name="{} {}".format(sim_info.lastName, sim_info.firstName))
+ if sim_info is None:
+ # send email even there are no reserve info
+ return AcceptedResultPojo(sms.text, slot_position=0, sim_position=0,
+ passport="", email="", phone="",
+ name="", ccid="",
+ url="")
+ else:
+ return AcceptedResultPojo(sms.text, slot_position=sim_info.slot_position, sim_position=sim_info.sim_position,
+ passport=sim_info.passport, email=sim_info.email, phone=sim_info.phone,
+ name="{} {}".format(sim_info.lastName, sim_info.firstName), ccid=sim_info.ccid,
+ url=sim_info.url)
diff --git a/notification/mailer.py b/notification/mailer.py
index 71235e6..6a57aa2 100644
--- a/notification/mailer.py
+++ b/notification/mailer.py
@@ -5,9 +5,7 @@ from mako.template import Template
import boto3
import definitions
-import params
from notification.AcceptedResultPojo import AcceptedResultPojo
-from pojo.ReserveResultPojo import ReserveResultPojo, PublishType
TEMPLATE_NAME = 'scrapy_template_email'
AWS_CLIENT_NAME = "sesv2"
@@ -53,14 +51,3 @@ class Mailer:
},
}
)
-
-
-if __name__ == '__main__':
- result = ReserveResultPojo(email="purge_jigsaws_0p@icloud.com", phone="0649614591", url="url", firstName="wenjing",
- lastName="Chen", message="msg", type=PublishType.SUCCESS, passport="Ed1543183",
- slot_position=1, sim_position=1)
-
- # mytemplate = Template(filename=definitions.ROOT_DIR + "/templates/appointment_results.html")
- # print(mytemplate.render(result_list=[result]))
- mailer = Mailer()
- mailer.send_email([result])
diff --git a/params.py b/params.py
index ce8fab7..416dd2f 100644
--- a/params.py
+++ b/params.py
@@ -1,5 +1,3 @@
-import os
-
from db.DbManager import DataManager
from logs.LogSender import LogSender
diff --git a/templates/appointment_results.html b/templates/appointment_results.html
index 2a7a2c6..7faa8a7 100644
--- a/templates/appointment_results.html
+++ b/templates/appointment_results.html
@@ -1,6 +1,15 @@
姓名:${result.name}
+
电话: ${result.phone}
+
邮件: ${result.email},
+
护照: ${result.passport}
+
SIM卡位置: 卡池第${result.slot_position}行,第${result.sim_position}列
-
短信: ${result.sms_msg}
\ No newline at end of file
+
+
短信内容: ${result.sms_msg}
+
+
SIM卡CCID: ${result.ccid}
+
+
约会url: ${result.url}
diff --git a/workers/wait_sms_worker.py b/workers/wait_sms_worker.py
index e969e51..d0b770d 100644
--- a/workers/wait_sms_worker.py
+++ b/workers/wait_sms_worker.py
@@ -1,5 +1,4 @@
import datetime
-import json
import logging
import threading
import time
@@ -85,4 +84,4 @@ if __name__ == '__main__':
worker = WaitSmsWorker(None)
sms = Sms("HERMES RDV",
"We are pleased to confirm your appointment. You will be welcomed on Apr 14, 2022 in our store at 17 rue de Sèvres at 4:45 PM. The given hour may be subje")
- worker.check_sms(sms, int('613467904'))
+ worker.check_sms(sms, int('628973387'))