From c79c45db8af9e90108bc1d4cc3ffb9899cc389d7 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Sun, 16 Oct 2022 23:41:20 +0200 Subject: [PATCH] manage accepted appointments --- clear_data.bat | 5 +++++ clear_data.sh | 5 +++++ src/appointment.js | 26 +++++++++++++++++++++----- src/test_blacklist.js | 20 +++++++++++++------- src/workers/CommandorPage.js | 2 +- src/workers/mongo_manager.js | 4 ++++ 6 files changed, 49 insertions(+), 13 deletions(-) diff --git a/clear_data.bat b/clear_data.bat index 50f755d..8ba008f 100644 --- a/clear_data.bat +++ b/clear_data.bat @@ -112,3 +112,8 @@ adb -s c3ba032e shell am start -n com.android.chrome/com.google.android.apps.chr adb -s 2140c70c shell pm clear com.android.chrome adb -s 2140c70c shell am set-debug-app --persistent com.android.chrome adb -s 2140c70c shell am start -n com.android.chrome/com.google.android.apps.chrome.Main + +#asus zenfone 3 +adb -s G7AZCY07H415CT3 shell pm clear com.android.chrome +adb -s G7AZCY07H415CT3 shell am set-debug-app --persistent com.android.chrome +adb -s G7AZCY07H415CT3 shell am start -n com.android.chrome/com.google.android.apps.chrome.Main diff --git a/clear_data.sh b/clear_data.sh index 7b87766..f8b9611 100644 --- a/clear_data.sh +++ b/clear_data.sh @@ -92,3 +92,8 @@ adb -s 192.168.1.24:42397 shell am start -n com.android.chrome/com.google.androi adb -s 2140c70c shell pm clear com.android.chrome adb -s 2140c70c shell am set-debug-app --persistent com.android.chrome adb -s 2140c70c shell am start -n com.android.chrome/com.google.android.apps.chrome.Main + +#asus zenfone 3 +adb -s G7AZCY07H415CT3 shell pm clear com.android.chrome +adb -s G7AZCY07H415CT3 shell am set-debug-app --persistent com.android.chrome +adb -s G7AZCY07H415CT3 shell am start -n com.android.chrome/com.google.android.apps.chrome.Main \ No newline at end of file diff --git a/src/appointment.js b/src/appointment.js index d34c51d..b2f2313 100644 --- a/src/appointment.js +++ b/src/appointment.js @@ -6,6 +6,7 @@ const alert = require('alert'); const mongoManager = new MongoManager(); const SEVEN_DAYS_IN_S = 3600 * 24 * 7; +const THIRTY_DAYS_IN_S = 3600 * 24 * 30; let excelUtil = new ExcelUtil(); let collectionName = formatDate(new Date()) @@ -24,8 +25,10 @@ async function filterAlreadyBookedContacts(contactList) { // Connect to the device. async function needToBook(contact, mongoManager) { - let alreadyBooked = await mongoManager.getAllSuccessfulItemsForDay(collectionName) - let blackListItems = await mongoManager.getAllBlackedListItems() + console.log("check contact with email " + contact.mail) + let alreadyBooked = await mongoManager.getAllSuccessfulItemsForDay(collectionName); + let blackListItems = await mongoManager.getAllBlackedListItems(); + let alreadyAcceptedItems = await mongoManager.getAllAcceptedAppointments(); let needToBook = true; await alreadyBooked.forEach((bookedItem) => { if (bookedItem.email === contact.mail) { @@ -36,12 +39,25 @@ async function needToBook(contact, mongoManager) { if (needToBook) { await blackListItems.forEach((blackListItem) => { if (blackListItem.mail === contact.mail) { - console.log("=====handle blacklist item====") + console.log("=====handle blacklist item===="); console.log("update_at_s is " + blackListItem.update_at_in_s) - console.log("email is " + blackListItem.mail) + console.log("black list email is " + blackListItem.mail) needToBook = blackListItem.update_at_in_s + SEVEN_DAYS_IN_S <= (new Date()) / 1000; if (!needToBook) { - console.log("skip") + console.log("contact in blacklist -->skip"); + } + } + }) + } + if (needToBook) { + await alreadyAcceptedItems.forEach((acceptedItem) => { + if (acceptedItem.email === contact.mail) { + console.log("=====handle already accepted item===="); + console.log("accepted_at is " + acceptedItem.accepted_at); + console.log("accepted email is " + acceptedItem.email); + needToBook = acceptedItem.accepted_at + THIRTY_DAYS_IN_S <= (new Date()) / 1000; + if (!needToBook) { + console.log("already accepted appointment --> skip"); } } }) diff --git a/src/test_blacklist.js b/src/test_blacklist.js index b62ce38..d0b8689 100644 --- a/src/test_blacklist.js +++ b/src/test_blacklist.js @@ -1,15 +1,21 @@ const CommandorPage = require("./workers/CommandorPage"); const ContactPojo = require("./models/ContactPojo"); -const {MongoManager} =require("./workers/mongo_manager"); +const {MongoManager} = require("./workers/mongo_manager"); const mongoManager = new MongoManager(); mongoManager.connect().then(r => { - let contact = new ContactPojo("0649614591", "1234567890", "PAN", "Lei", "panleicim@gmail.com") - let commandPage = new CommandorPage(contact, null, mongoManager) - commandPage.deleteFromBlackList().then(r => { - console.log("saved to db") - }) - + // let contact = new ContactPojo("0649614591", "1234567890", "PAN", "Lei", "panleicim@gmail.com") + // let commandPage = new CommandorPage(contact, null, mongoManager) + // commandPage.deleteFromBlackList().then(r => { + // console.log("saved to db") + // }) + mongoManager.getAllAcceptedAppointments().then(acceptedList => { + acceptedList.forEach((item) => { + console.log(item.email) + console.log(item.accepted_at) + }) + } + ) } ) \ No newline at end of file diff --git a/src/workers/CommandorPage.js b/src/workers/CommandorPage.js index 18478ae..f790d13 100644 --- a/src/workers/CommandorPage.js +++ b/src/workers/CommandorPage.js @@ -7,7 +7,7 @@ const { shell } = require('electron') const GeoCaptchaSolver = require("./GeoCaptchaSolver"); -// const RDV_URL = "http://192.168.0.44:8000/test_appointment.html" +// const RDV_URL = "http://192.168.0.41:8000/test_appointment.html" const RDV_URL = "https://rendezvousparis.hermes.com/client/register"; BLANK_URL = "about:blank" const ERROR_CAPTCHA_UNSOLVABLE = "ERROR_CAPTCHA_UNSOLVABLE"; diff --git a/src/workers/mongo_manager.js b/src/workers/mongo_manager.js index 6efdf8d..4035a45 100644 --- a/src/workers/mongo_manager.js +++ b/src/workers/mongo_manager.js @@ -41,6 +41,10 @@ class MongoManager { return await this.db.collection(day).find().toArray() } + async getAllAcceptedAppointments() { + return await this.db.collection(ACCEPTED_APPOINTMENT_LIST).find().toArray() + } + async saveReserveToDb(reservePojo) { let collectionName = formatDate(new Date()) return await this.db.collection(collectionName).replaceOne({'_id': reservePojo.id,}, reservePojo, {upsert: true})