From 636ef124d530362894bae4775be14e91282f75f6 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Thu, 16 Jun 2022 09:26:49 +0200 Subject: [PATCH] add mongoDb support --- db/DbManager.py | 5 +++-- db/mongo_manager.py | 29 +++++++++++++++++++++++++++++ params.py | 8 +++----- workers/commandor_page.py | 2 -- 4 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 db/mongo_manager.py diff --git a/db/DbManager.py b/db/DbManager.py index 7cf4310..2012dc4 100644 --- a/db/DbManager.py +++ b/db/DbManager.py @@ -58,9 +58,10 @@ class DataManager: def save(self, result: ReserveResultPojo): id = result.url.split("/")[-1] result.id = id - document_name = str(datetime.date.today()) - doc_ref = self._db.collection(document_name).document(result.id) + collection_name = str(datetime.date.today()) + doc_ref = self._db.collection(collection_name).document(result.id) doc_ref.set(result.to_firestore_dict()) + params.mongo_store_manager.insert_reserve_result(collection_name=collection_name, reserve=result) def find_appointment_detail_via_phone(self, day, phone) -> ReserveResultPojo: params.oracle_log_sender.send_read_db_event("find_appointment_detail_via_phone") diff --git a/db/mongo_manager.py b/db/mongo_manager.py new file mode 100644 index 0000000..cdaf636 --- /dev/null +++ b/db/mongo_manager.py @@ -0,0 +1,29 @@ +import logging + +from pymongo import MongoClient +from pojo.ReserveResultPojo import ReserveResultPojo + +MONGO_DB_URL = "91.121.210.60" + + +class MongoDbManager: + def __init__(self): + client = MongoClient(MONGO_DB_URL, username='appointment', password='Rdv@2022', authSource='appointment') + self.db = client.appointment + self.logger = logging.getLogger("mongoDb") + + def insert_one(self, collection_name: str, dict: dict): + collection_to_use = self.db[collection_name] + collection_to_use.insert_one(dict) + + def insert_reserve_result(self, collection_name, reserve: ReserveResultPojo): + try: + collection_to_use = self.db[collection_name] + collection_to_use.replace_one(filter={'_id': reserve.id, }, replacement=reserve.to_firestore_dict(), + upsert=True) + except Exception as Error: + print(Error) + + +if __name__ == '__main__': + db_manager = MongoDbManager() diff --git a/params.py b/params.py index 573564a..dc98e51 100644 --- a/params.py +++ b/params.py @@ -4,6 +4,7 @@ import string import definitions from db.DbManager import DataManager from db.local_db_manager import LocalDbManager +from db.mongo_manager import MongoDbManager from logs.LogSender import LogSender from proxy.proxy_type import ProxyType @@ -22,6 +23,8 @@ BRIGHT_DATA_MOBILE_PROXY_PASSWORD = "fk5f7c2z2c19" PROXY_NAME_PREFIX_RES = "panleicim-res-fr-" PROXY_NAME_PREFIX_CC = "panleicim-cc-fr-" +mongo_store_manager = MongoDbManager() + def get_proxy_name_prefix() -> str: return PROXY_NAME_PREFIX_RES @@ -42,11 +45,6 @@ def get_proxy(proxy_type: ProxyType): "username": BRIGHT_DATA_PROXY_USERNAME, "password": BRIGHT_DATA_PROXY_PASSWORD } - # proxy = { - # "server": BRIGHT_DATA_PROXY_SERVER, - # "username": BRIGHT_DATA_MOBILE_PROXY_USERNAME, - # "password": BRIGHT_DATA_MOBILE_PROXY_PASSWORD - # } return proxy diff --git a/workers/commandor_page.py b/workers/commandor_page.py index 19ba28a..6fc6d2c 100644 --- a/workers/commandor_page.py +++ b/workers/commandor_page.py @@ -100,8 +100,6 @@ class CommandorPage: while first_page is None: first_page = self.start_browser(proxy, self.tls.playwright, devices) proxy = params.get_proxy(self.proxy_type) - # wait for sms_code field - # self.clickOnValidBtn() self.thread_event = e otp_input = self.page.locator(OTP_FIELD_ID) otp_input.wait_for(state='visible', timeout=TIME_OUT)