From 241cdda0f934ccd9d0a3241f71c4916862ae0345 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 12 Aug 2022 13:01:16 +0200 Subject: [PATCH] handle duplicated --- src/db/mongo_manager.py | 4 ++-- src/mail/mail_reader.py | 2 +- src/pojo/ReserveResultPojo.py | 1 + src/workers/link_validator.py | 14 ++++++++++---- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/db/mongo_manager.py b/src/db/mongo_manager.py index fa55522..2dcdc47 100644 --- a/src/db/mongo_manager.py +++ b/src/db/mongo_manager.py @@ -181,11 +181,11 @@ class MongoDbManager: except Exception as error: self.logger.info(error) - def link_validated_for_result(self, link: str): + def link_validated_for_result(self, link: str, state="True"): id = link.split("/")[-1] collection_name = str(datetime.date.today()) collection = self.db[collection_name] - collection.find_one_and_update({'_id': id}, {"$set": {"url_validated": "True"}}, upsert=False) + collection.find_one_and_update({'_id': id}, {"$set": {"url_validated": state}}, upsert=False) MONGO_STORE_MANAGER = MongoDbManager() diff --git a/src/mail/mail_reader.py b/src/mail/mail_reader.py index 4809e26..9818c63 100644 --- a/src/mail/mail_reader.py +++ b/src/mail/mail_reader.py @@ -163,7 +163,7 @@ def read_mails(): if need_to_valid_url(url, successful_items): url_validator = LinkValidator(url) print("need to validate url: " + url) - executor.submit(url_validator.start_page, params.get_proxy(ProxyType.BRIGHT_DATA), True) + executor.submit(url_validator.start_page, params.get_proxy(ProxyType.BRIGHT_DATA), False) else: print("do not need to click url --> {}".format(mail)) diff --git a/src/pojo/ReserveResultPojo.py b/src/pojo/ReserveResultPojo.py index 2e75dad..aeec759 100644 --- a/src/pojo/ReserveResultPojo.py +++ b/src/pojo/ReserveResultPojo.py @@ -11,6 +11,7 @@ class PublishType(Enum): SUCCESS = "SUCCESS" ERROR = "ERROR" PENDING = "PENDING" + DUPLICATED = "DUPLICATED" @dataclass_json diff --git a/src/workers/link_validator.py b/src/workers/link_validator.py index c0a545d..a948020 100644 --- a/src/workers/link_validator.py +++ b/src/workers/link_validator.py @@ -17,6 +17,7 @@ TIME_OUT = 10 * 60 * 1000 # 10 mins PAGE_TIMEOUT = 40000 CONFIRMED_MESSAGE_FR = "Votre demande de rendez-vous Maroquinerie a bien été enregistrée et nous vous en remercions." SORRY_SENTENCE_FR = "nous sommes sincèrement désolés de n'avoir pu vous satisfaire cette fois-ci" +DOUBLE_REQUEST_ERROR_MESSAGE_FR = "Une demande avec les données saisies a déjà été validée aujourd’hui." class LinkValidator: @@ -100,6 +101,9 @@ class LinkValidator: elif SORRY_SENTENCE_FR in message: # publish the successful message self.publish_message_to_queue(PublishType.SUCCESS) + elif DOUBLE_REQUEST_ERROR_MESSAGE_FR in message: + # publish the successful message + self.publish_message_to_queue(PublishType.DUPLICATED) except Exception as error: self.logger.error(error) @@ -116,8 +120,10 @@ class LinkValidator: def publish_message_to_queue(self, status: PublishType): # create the message - MONGO_STORE_MANAGER.link_validated_for_result(self.page.url) if status is PublishType.SUCCESS: - self.on_success() - time.sleep(2) - self.browser.close() + MONGO_STORE_MANAGER.link_validated_for_result(self.page.url) + else: + MONGO_STORE_MANAGER.link_validated_for_result(self.page.url, state=status.name) + self.on_success() + time.sleep(2) + self.browser.close()