handle ssl error

This commit is contained in:
2023-11-29 17:14:59 +01:00
parent 9be644aadf
commit 939b98e3a3
4 changed files with 39 additions and 18 deletions
+1 -1
View File
@@ -21,7 +21,7 @@
"node-wget": "^0.4.3",
"node-xlsx": "^0.21.0",
"playwright": "^1.39.0",
"puppeteer": "^15.5.0",
"puppeteer": "^15.2.0",
"read-ini-file": "^3.0.1",
"uuid": "^9.0.0",
"winston": "^3.8.2",
+2
View File
@@ -3,6 +3,8 @@ const OCRResult = {
TO_REFRESH: Symbol("TO_REFRESH"),
BLOCKED: Symbol("BLOCKED"),
SLIDING_CAPTCHA: Symbol("SLIDING_CAPTCHA"),
SSL_CERT_ERROR: Symbol("SSL_CERT_ERROR"),
SLIDING_CAPTCHA_LOADING: Symbol("SLIDING_CAPTCHA_LOADING"),
SLIDING_CAPTCHA_REFRESH: Symbol("SLIDING_CAPTCHA_REFRESH"),
FILL_FIELD: Symbol("FILL_FIELD"),
NEED_TO_CLICK_LATE_BTN: Symbol("NEED_TO_CLICK_LATE_BTN"),
+24 -15
View File
@@ -178,7 +178,8 @@ class CommandorPage {
if (this.isTerminated) {
log(this.device.model() + ":request terminated, send cancel()");
try {
await this.page.close()
if (this.page !== undefined)
await this.page.close()
} catch (e) {
console.log(e)
}
@@ -726,16 +727,6 @@ class CommandorPage {
await this.checkResultWithOcr();
if (this.page.url() === BLANK_URL) {
this.isTerminated = true;
} else {
try {
// let errorItem = this.page.locator("div.alert");
// if (errorItem) {
// let errorContent = await errorItem.innerHTML();
// await this.handleError(errorContent);
// }
} catch (e) {
log(e);
}
}
}
@@ -824,6 +815,12 @@ class CommandorPage {
await delay(10 * 1000)
}
switch (checkResult) {
case OCRResult.SLIDING_CAPTCHA_LOADING:
this.isTerminated = true;
break;
case OCRResult.SSL_CERT_ERROR:
await this.resetBrowser()
break;
case OCRResult.TERMINAED:
this.isTerminated = true;
break;
@@ -842,17 +839,29 @@ class CommandorPage {
logWithDevice("get pages", this.device)
let pages = await this.browser.pages();
try {
pages.forEach((currentPage) => {
for (const currentPage of pages) {
if (currentPage.url() === RDV_URL) {
this.page = currentPage;
logWithDevice("get content", this.device)
let pageContent = await currentPage.content()
logWithDevice("content:" + pageContent, this.device)
if (!pageContent.includes("geo.captcha-delivery.com")) {
this.page = currentPage;
break
} else {
try {
await currentPage.close()
} catch (e) {
console.log(e)
}
}
} else {
try {
currentPage.close()
await currentPage.close()
} catch (e) {
console.log(e)
}
}
})
}
} catch (e) {
this.isTerminated = true;
console.log(e)
+12 -2
View File
@@ -17,6 +17,7 @@ const NO_INTERNET_FR_2 = "Aucun accès à Internet"
const BRAVE_VPN_SKIP = "Pare-feu + VPN Brave"
const MESSAGE_URL_VALIDATION_FR = "envoyé un lien par e-mail."
const MESSAGE_URL_VALIDATION_FR_2 = "un lien par e-mail"
const SSL_CERT_ERROR = " Votre connexion n'est pas privée"
const MESSAGE_URL_VALIDATION_EN = "Please click on the link we sent by email"
const CHOOSE_POSITION_GOOGLE_FR = " Choisir la position pour les résultats de recherche"
const CAPTCHA_ERROR_MESSAGE = "Error verifying captcha, please try again"
@@ -31,11 +32,14 @@ const ERR_CACHE_MISS = "ERR_CACHE_MISS"
const ERR_CACHE_MISS_2 = "ERR_CACHE-MISS"
const ERR_CACHE_MISS_3 = "appuyer sur le bouton d'actualisation"
const ERR_CACHE_MISS_4 = "renvoyer les données"
const ERR_EMPTY_RESPONSE = "ERR_EMPTY_RESPONSE"
const SLIDING_CAPTCHA_FR = "Pourquoi cette vérification"
const SLIDING_CAPTCHA_LOADING_FR = "Chargement."
const SLIDING_CAPTCHA_FR_2 = "Glissez vers la droite pour"
const SLIDING_CAPTCHA_FR_3 = "la droite pour completer le puzzle"
const SLIDING_CAPTCHA_FR_4 = " s'assure qu'on s'adresse bien"
const SLIDING_CAPTCHA_FR_5 = "On s'assure que c'est"
const SLIDING_CAPTCHA_FR_6 = "s'assure que cest bien vous"
const MESSAGE_FILL_FIELD_FR = "Demande de rendez-vous pour"
const MESSAGE_FILL_FIELD_FR_2 = "des champs de données doivent étre complétés"
const MESSAGE_FILL_FIELD_FR_3 = "Sans préféré"
@@ -100,6 +104,9 @@ class OCRChecker {
} else if (result.includes(BRAVE_VPN_SKIP)) {
await this.deleteFile(fileName)
return OCRResult.BRAVE_VPN_SKIP
} else if (result.includes(SSL_CERT_ERROR)) {
await this.deleteFile(fileName)
return OCRResult.SSL_CERT_ERROR
} else if (result.includes(MESSAGE_FILL_FIELD_FR) || result.includes(MESSAGE_FILL_FIELD_FR_2) || result.includes(MESSAGE_FILL_FIELD_FR_3) || result.includes(MESSAGE_FILL_FIELD_FR_4) || result.includes(MESSAGE_FILL_FIELD_FR_5)) {
await this.deleteFile(fileName)
return OCRResult.FILL_FIELD
@@ -108,7 +115,7 @@ class OCRChecker {
} else if (result.includes(BLOCKED_MSG_EN) || result.includes(BLOCKED_MSG_FR) || result.includes(BLOCKED_MSG_FR_2) || result.includes(BLOCKED_MSG_FR_3)) {
await this.deleteFile(fileName)
return OCRResult.BLOCKED
} else if (result.includes(ERR_CACHE_MISS) || result.includes(ERR_CACHE_MISS_2) || result.includes(ERR_CACHE_MISS_3) || result.includes(ERR_CACHE_MISS_4)) {
} else if (result.includes(ERR_CACHE_MISS) || result.includes(ERR_CACHE_MISS_2) || result.includes(ERR_CACHE_MISS_3) || result.includes(ERR_CACHE_MISS_4) || result.includes("ERR_EMPTY_RESPONSE")) {
return OCRResult.TO_REFRESH
} else if (result.includes(CHECKING_MSG_FR) || result.includes(CHECKING_MSG_FR_2)) {
await this.deleteFile(fileName)
@@ -119,8 +126,11 @@ class OCRChecker {
} else if (result.includes(BRAVE_SKIP_PUB) || result.includes(BRAVE_SKIP_PUB_2) || result.includes(BRAVE_SKIP_PUB_3) || result.includes(BRAVE_SKIP_PUB_4) || result.includes(BRAVE_SKIP_PUB_5)) {
await this.deleteFile(fileName)
return OCRResult.BRAVE_PRIVACY_PUB
} else if (result.includes(SLIDING_CAPTCHA_FR) || result.includes(SLIDING_CAPTCHA_FR_2) || result.includes(SLIDING_CAPTCHA_FR_3) || result.includes(SLIDING_CAPTCHA_FR_4) || result.includes(SLIDING_CAPTCHA_FR_5)) {
} else if (result.includes(SLIDING_CAPTCHA_FR) || result.includes(SLIDING_CAPTCHA_FR_2) || result.includes(SLIDING_CAPTCHA_FR_3) || result.includes(SLIDING_CAPTCHA_FR_4) || result.includes(SLIDING_CAPTCHA_FR_5) || result.includes(SLIDING_CAPTCHA_FR_6)) {
await this.deleteFile(fileName)
if (result.includes(SLIDING_CAPTCHA_LOADING_FR)) {
return OCRResult.SLIDING_CAPTCHA_LOADING
}
// await this.deleteFile(screenShot)
// if (result.includes("rac"))
// return OCRResult.SLIDING_CAPTCHA_REFRESH