use macocr
This commit is contained in:
@@ -22,5 +22,6 @@ const OCRResult = {
|
|||||||
BRAVE_PRIVACY: Symbol("BRAVE_PRIVACY"),
|
BRAVE_PRIVACY: Symbol("BRAVE_PRIVACY"),
|
||||||
BRAVE_PRIVACY_PUB: Symbol("BRAVE_PRIVACY_PUB"),
|
BRAVE_PRIVACY_PUB: Symbol("BRAVE_PRIVACY_PUB"),
|
||||||
BRAVE_NOTIFICATION: Symbol("BRAVE_NOTIFICATION"),
|
BRAVE_NOTIFICATION: Symbol("BRAVE_NOTIFICATION"),
|
||||||
|
CHOOSE_POSITION: Symbol("CHOOSE_POSITION"),
|
||||||
}
|
}
|
||||||
module.exports = OCRResult
|
module.exports = OCRResult
|
||||||
@@ -35,7 +35,6 @@ function cmdExecute(command) {
|
|||||||
|
|
||||||
async function findText(imgPath) {
|
async function findText(imgPath) {
|
||||||
// Load images
|
// Load images
|
||||||
let baseDir = "/Users/panlei/Documents/workspace/MacOCI"
|
|
||||||
let cmd = `${baseDir}/venv/bin/python ${baseDir}/MacOCR.py ${imgPath}`
|
let cmd = `${baseDir}/venv/bin/python ${baseDir}/MacOCR.py ${imgPath}`
|
||||||
let stdOut = await cmdExecute(cmd);
|
let stdOut = await cmdExecute(cmd);
|
||||||
console.log(stdOut)
|
console.log(stdOut)
|
||||||
|
|||||||
@@ -874,7 +874,6 @@ class CommandorPage {
|
|||||||
if (isSuccessful) {
|
if (isSuccessful) {
|
||||||
checkResult = await this.ocrChecker.get_result();
|
checkResult = await this.ocrChecker.get_result();
|
||||||
} else {
|
} else {
|
||||||
// await this.checkResultWithOcr()
|
|
||||||
checkResult = OCRResult.TERMINAED
|
checkResult = OCRResult.TERMINAED
|
||||||
this.isTerminated = true
|
this.isTerminated = true
|
||||||
}
|
}
|
||||||
@@ -1034,6 +1033,13 @@ class CommandorPage {
|
|||||||
await delay(2000);
|
await delay(2000);
|
||||||
await this.checkResultWithOcr();
|
await this.checkResultWithOcr();
|
||||||
break;
|
break;
|
||||||
|
case OCRResult.CHOOSE_POSITION:
|
||||||
|
logWithDevice("CHOOSE_POSITION", this.device)
|
||||||
|
await this.tapForDevice(this.device, 300, 1300)
|
||||||
|
await delay(2000);
|
||||||
|
await this.tapForDevice(this.device, 300, 1700)
|
||||||
|
await this.checkResultWithOcr();
|
||||||
|
break;
|
||||||
case OCRResult.TO_SKIP
|
case OCRResult.TO_SKIP
|
||||||
:
|
:
|
||||||
logWithDevice("TO_SKIP", this.device)
|
logWithDevice("TO_SKIP", this.device)
|
||||||
@@ -1124,11 +1130,9 @@ class CommandorPage {
|
|||||||
} else {
|
} else {
|
||||||
logWithDevice("handleBraveSkipBtn", this.device)
|
logWithDevice("handleBraveSkipBtn", this.device)
|
||||||
await this.tapForDevice(this.device, 470, 1160)
|
await this.tapForDevice(this.device, 470, 1160)
|
||||||
// await this.device.shell("input tap " + 470 + " " + 1160)
|
|
||||||
}
|
}
|
||||||
await delay(2000);
|
await delay(2000);
|
||||||
await this.tapForDevice(this.device, 455, 1920)
|
await this.tapForDevice(this.device, 455, 1920)
|
||||||
// await this.device.shell("input tap " + 455 + " " + 1920)
|
|
||||||
await delay(1000);
|
await delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1152,22 +1156,6 @@ class CommandorPage {
|
|||||||
|
|
||||||
async closePage() {
|
async closePage() {
|
||||||
await this.resetBrowser();
|
await this.resetBrowser();
|
||||||
// while (!this.browser.isConnected()) {
|
|
||||||
// logWithDevice("trying to connect to browser", this.device)
|
|
||||||
// this.browser = await puppeteer.connect({
|
|
||||||
// browserWSEndpoint: "ws://127.0.0.1:" + this.port + "/devtools/browser",
|
|
||||||
// headless: false, defaultViewport: null
|
|
||||||
// })
|
|
||||||
// await delay(2 * 1000);
|
|
||||||
// }
|
|
||||||
// console.log("will close all pages");
|
|
||||||
// let pages = await this.browser.pages();
|
|
||||||
// await pages[0].close()
|
|
||||||
// console.log("page closed");
|
|
||||||
// pages.forEach((currentPage) => {
|
|
||||||
// currentPage.close();
|
|
||||||
// })
|
|
||||||
// await this.browser.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async skipOptimizationPage() {
|
async skipOptimizationPage() {
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
const {v4: uuidv4} = require("uuid");
|
const {v4: uuidv4} = require("uuid");
|
||||||
const tesseract = require("node-tesseract-ocr");
|
|
||||||
const OCRResult = require("../models/OCRResult");
|
const OCRResult = require("../models/OCRResult");
|
||||||
const Jimp = require('jimp');
|
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const {exec} = require("child_process");
|
const {exec} = require("child_process");
|
||||||
const findText = require("../utiles/CmdUtils");
|
const findText = require("../utiles/CmdUtils");
|
||||||
@@ -14,15 +12,11 @@ function delay(delayInMs) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const config = {
|
|
||||||
lang: "eng",
|
|
||||||
oem: 1,
|
|
||||||
psm: 3,
|
|
||||||
}
|
|
||||||
const NO_INTERNET_FR = "Aucun accés a Internet"
|
const NO_INTERNET_FR = "Aucun accés a Internet"
|
||||||
const MESSAGE_URL_VALIDATION_FR = "envoyé un lien par e-mail."
|
const MESSAGE_URL_VALIDATION_FR = "envoyé un lien par e-mail."
|
||||||
const MESSAGE_URL_VALIDATION_FR_2 = "un lien par e-mail"
|
const MESSAGE_URL_VALIDATION_FR_2 = "un lien par e-mail"
|
||||||
const MESSAGE_URL_VALIDATION_EN = "Please click on the link we sent by email"
|
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"
|
const CAPTCHA_ERROR_MESSAGE = "Error verifying captcha, please try again"
|
||||||
const CAPTCHA_ERROR_MESSAGE_FR = "La vérification du captcha a échoué"
|
const CAPTCHA_ERROR_MESSAGE_FR = "La vérification du captcha a échoué"
|
||||||
const BLOCKED_MSG_EN = "have been blocked"
|
const BLOCKED_MSG_EN = "have been blocked"
|
||||||
@@ -83,41 +77,36 @@ class OCRChecker {
|
|||||||
return this.contact.passportNumber + "_" + uuid + ".png"
|
return this.contact.passportNumber + "_" + uuid + ".png"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async get_result() {
|
async get_result() {
|
||||||
let fileName = await this.take_screen_shot()
|
let fileName = await this.take_screen_shot()
|
||||||
// let screenShot = await convertImageToWhiteBlack(fileName, this.device);
|
|
||||||
await delay(1000)
|
await delay(1000)
|
||||||
try {
|
try {
|
||||||
let result = await findText(fileName)
|
let result = await findText(fileName)
|
||||||
console.log(result)
|
console.log(result)
|
||||||
if (result.includes(MESSAGE_URL_VALIDATION_EN) || result.includes(MESSAGE_URL_VALIDATION_FR) || result.includes(MESSAGE_URL_VALIDATION_FR_2)) {
|
if (result.includes(MESSAGE_URL_VALIDATION_EN) || result.includes(MESSAGE_URL_VALIDATION_FR) || result.includes(MESSAGE_URL_VALIDATION_FR_2)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.SUCCESS
|
return OCRResult.SUCCESS
|
||||||
} else if (result.includes(BRAVE_NOTIFICATION)) {
|
} else if (result.includes(BRAVE_NOTIFICATION)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.BRAVE_NOTIFICATION
|
return OCRResult.BRAVE_NOTIFICATION
|
||||||
|
} else if (result.includes(CHOOSE_POSITION_GOOGLE_FR)) {
|
||||||
|
await this.deleteFile(fileName)
|
||||||
|
return OCRResult.CHOOSE_POSITION
|
||||||
} 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)) {
|
} 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)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.FILL_FIELD
|
return OCRResult.FILL_FIELD
|
||||||
} else if (result.includes(CAPTCHA_ERROR_MESSAGE) || result.includes(CAPTCHA_ERROR_MESSAGE_FR)) {
|
} else if (result.includes(CAPTCHA_ERROR_MESSAGE) || result.includes(CAPTCHA_ERROR_MESSAGE_FR)) {
|
||||||
return OCRResult.RECAPTCHA_ERROR
|
return OCRResult.RECAPTCHA_ERROR
|
||||||
} else if (result.includes(BLOCKED_MSG_EN) || result.includes(BLOCKED_MSG_FR) || result.includes(BLOCKED_MSG_FR_2)) {
|
} else if (result.includes(BLOCKED_MSG_EN) || result.includes(BLOCKED_MSG_FR) || result.includes(BLOCKED_MSG_FR_2)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.BLOCKED
|
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)) {
|
||||||
return OCRResult.TO_REFRESH
|
return OCRResult.TO_REFRESH
|
||||||
} else if (result.includes(CHECKING_MSG_FR) || result.includes(CHECKING_MSG_FR_2)) {
|
} else if (result.includes(CHECKING_MSG_FR) || result.includes(CHECKING_MSG_FR_2)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.RECHECK
|
return OCRResult.RECHECK
|
||||||
} else if (result.includes(BRAVE_NOTIFICATION)) {
|
} else if (result.includes(BRAVE_NOTIFICATION)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.BRAVE_NOTIFICATION
|
return OCRResult.BRAVE_NOTIFICATION
|
||||||
} 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)) {
|
} 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)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
@@ -127,15 +116,12 @@ class OCRChecker {
|
|||||||
return OCRResult.SLIDING_CAPTCHA
|
return OCRResult.SLIDING_CAPTCHA
|
||||||
} else if (result.includes(WELCOME_MESSAGE_FR)) {
|
} else if (result.includes(WELCOME_MESSAGE_FR)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.NEED_TO_CLICK_LATE_BTN
|
return OCRResult.NEED_TO_CLICK_LATE_BTN
|
||||||
} else if (result.includes(GOOGLE_DISCONNECT_FR) || result.includes(GOOGLE_DISCONNECT_FR_1)) {
|
} else if (result.includes(GOOGLE_DISCONNECT_FR) || result.includes(GOOGLE_DISCONNECT_FR_1)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.GOOGLE_DISCONNECT
|
return OCRResult.GOOGLE_DISCONNECT
|
||||||
} else if (result.toLowerCase().includes(ONLINE_APPOINTMENT.toLowerCase())) {
|
} else if (result.toLowerCase().includes(ONLINE_APPOINTMENT.toLowerCase())) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.ONLINE_APPOINTMENT
|
return OCRResult.ONLINE_APPOINTMENT
|
||||||
} else if (result.includes(PAGE_OPTIMIZATION_CHROME_FR) || result.includes(PAGE_OPTIMIZATION_CHROME_FR_2) || result.includes(PAGE_OPTIMIZATION_CHROME_FR_3)
|
} else if (result.includes(PAGE_OPTIMIZATION_CHROME_FR) || result.includes(PAGE_OPTIMIZATION_CHROME_FR_2) || result.includes(PAGE_OPTIMIZATION_CHROME_FR_3)
|
||||||
|| result.includes(PAGE_OPTIMIZATION_CHROME_FR_4) || result.includes(PAGE_OPTIMIZATION_CHROME_FR_5)
|
|| result.includes(PAGE_OPTIMIZATION_CHROME_FR_4) || result.includes(PAGE_OPTIMIZATION_CHROME_FR_5)
|
||||||
@@ -144,11 +130,9 @@ class OCRChecker {
|
|||||||
|| result.includes(PAGE_OPTIMIZATION_CHROME_FR_7)
|
|| result.includes(PAGE_OPTIMIZATION_CHROME_FR_7)
|
||||||
) {
|
) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.PAGE_OPTIMIZATION
|
return OCRResult.PAGE_OPTIMIZATION
|
||||||
} else if (result.includes(CONFIRM_RESEND_FORM_FR)) {
|
} else if (result.includes(CONFIRM_RESEND_FORM_FR)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.CONFIRM_RESEND_FORM
|
return OCRResult.CONFIRM_RESEND_FORM
|
||||||
} else if (result.includes(CLOSED_MESSAGE_FR)) {
|
} else if (result.includes(CLOSED_MESSAGE_FR)) {
|
||||||
return OCRResult.CLOSED
|
return OCRResult.CLOSED
|
||||||
@@ -156,7 +140,6 @@ class OCRChecker {
|
|||||||
return OCRResult.TERMINAED
|
return OCRResult.TERMINAED
|
||||||
} else if (result.includes(DIALOG_TO_SKIP)) {
|
} else if (result.includes(DIALOG_TO_SKIP)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.TO_SKIP
|
return OCRResult.TO_SKIP
|
||||||
} else if (result.includes(RECAPTCHA_FAILED_FR)) {
|
} else if (result.includes(RECAPTCHA_FAILED_FR)) {
|
||||||
return OCRResult.TERMINAED
|
return OCRResult.TERMINAED
|
||||||
@@ -164,15 +147,12 @@ class OCRChecker {
|
|||||||
return OCRResult.NO_INTERNET
|
return OCRResult.NO_INTERNET
|
||||||
} else if (result.includes(BRAVE_SKIP_DEFAULT_PAGE) || result.includes(BRAVE_SKIP_DEFAULT_PAGE_2)) {
|
} else if (result.includes(BRAVE_SKIP_DEFAULT_PAGE) || result.includes(BRAVE_SKIP_DEFAULT_PAGE_2)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.BRAVE_SKIP
|
return OCRResult.BRAVE_SKIP
|
||||||
} else if (result.includes(BRAVE_SKIP_PRIVACY_PAGE) || result.includes(BRAVE_SKIP_PRIVACY_PAGE_2)) {
|
} else if (result.includes(BRAVE_SKIP_PRIVACY_PAGE) || result.includes(BRAVE_SKIP_PRIVACY_PAGE_2)) {
|
||||||
await this.deleteFile(fileName)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.BRAVE_PRIVACY
|
return OCRResult.BRAVE_PRIVACY
|
||||||
} 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)) {
|
} 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)
|
await this.deleteFile(fileName)
|
||||||
// await this.deleteFile(screenShot)
|
|
||||||
return OCRResult.BRAVE_PRIVACY_PUB
|
return OCRResult.BRAVE_PRIVACY_PUB
|
||||||
} else {
|
} else {
|
||||||
return OCRResult.TERMINAED
|
return OCRResult.TERMINAED
|
||||||
@@ -198,7 +178,6 @@ class OCRChecker {
|
|||||||
let stdout1 = await exec("adb -s " + this.device.serial() + " exec-out screencap -p > " + name)
|
let stdout1 = await exec("adb -s " + this.device.serial() + " exec-out screencap -p > " + name)
|
||||||
await delay(5000);
|
await delay(5000);
|
||||||
console.log(`stdout: ${stdout1}`);
|
console.log(`stdout: ${stdout1}`);
|
||||||
// await this.device.screenshot({path: name});
|
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user