use adb to open url

This commit is contained in:
2023-10-28 17:02:09 +02:00
parent 0f56670774
commit 8160ca02f3
4 changed files with 79 additions and 72 deletions
-4
View File
@@ -9,10 +9,6 @@ class ExcelUtil {
workSheetsFromFile[0].data.forEach( workSheetsFromFile[0].data.forEach(
(info, index, list) => { (info, index, list) => {
if (index > 0 && info.length > 0) { if (index > 0 && info.length > 0) {
// console.log(info)
if (info[0].includes("Aijing")) {
console.log("found");
}
let name = info[0].trim().split(" ") let name = info[0].trim().split(" ")
let firstName = name[1]; let firstName = name[1];
let lastName = name[0]; let lastName = name[0];
+9 -1
View File
@@ -33,6 +33,14 @@ function cmdExecute(command) {
}); });
} }
async function openUrlWithAdb(url, device) {
// do not continue if device is blocked
console.log("load url on device " + device.model() + " url=" + url)
let cmd = "adb -s " + device.serial() + " shell am start -a android.intent.action.VIEW -d " + url
let output = await cmdExecute(cmd);
console.log(`stdout: ${output}`);
}
async function findText(imgPath) { async function findText(imgPath) {
// Load images // Load images
let cmd = `${baseDir}/venv/bin/python ${baseDir}/MacOCR.py ${imgPath}` let cmd = `${baseDir}/venv/bin/python ${baseDir}/MacOCR.py ${imgPath}`
@@ -41,4 +49,4 @@ async function findText(imgPath) {
return stdOut return stdOut
} }
module.exports = findText module.exports = {findText, openUrlWithAdb}
+69 -65
View File
@@ -8,6 +8,7 @@ const GeoCaptchaSolver = require("./GeoCaptchaSolver");
const SlidingCaptchaSolver = require("./SlidingCaptchaSolver"); const SlidingCaptchaSolver = require("./SlidingCaptchaSolver");
const OCRChecker = require("./OCRChecker"); const OCRChecker = require("./OCRChecker");
const {exec} = require("child_process"); const {exec} = require("child_process");
const {openUrlWithAdb} = require("../utiles/CmdUtils");
// const RDV_URL = "http://192.168.0.44:8000/test_appointment.html" // const RDV_URL = "http://192.168.0.44:8000/test_appointment.html"
const RDV_URL = "https://rendezvousparis.hermes.com/client/register"; const RDV_URL = "https://rendezvousparis.hermes.com/client/register";
const BLANK_URL = "about:blank" const BLANK_URL = "about:blank"
@@ -137,8 +138,6 @@ class CommandorPage {
this.page = currentPage this.page = currentPage
} }
}) })
// this.page = pages[pages.length - 1];
// this.page = pages[0];
logWithDevice("pageUrl is " + this.page.url(), this.device) logWithDevice("pageUrl is " + this.page.url(), this.device)
// this.page = pages[pages.length - 1]; // this.page = pages[pages.length - 1];
switch (ocrResult) { switch (ocrResult) {
@@ -184,7 +183,7 @@ class CommandorPage {
// let cmd = 'adb -s ' + device.serial() + " forward tcp:" + attributedPort + " localabstract:chrome_devtools_remote"; // let cmd = 'adb -s ' + device.serial() + " forward tcp:" + attributedPort + " localabstract:chrome_devtools_remote";
await exceutShellCmd(this.device, " forward tcp:" + this.port + " localabstract:chrome_devtools_remote") await exceutShellCmd(this.device, " forward tcp:" + this.port + " localabstract:chrome_devtools_remote")
await delay(1 * 1000); await delay(1 * 1000);
await this.startPage(this.device, this.browserPackageName + "/com.google.android.apps.chrome.Main") // await this.startPage(this.device, this.browserPackageName + "/com.google.android.apps.chrome.Main")
await delay(4 * 1000); await delay(4 * 1000);
} catch (e) { } catch (e) {
console.log(e) console.log(e)
@@ -196,25 +195,25 @@ class CommandorPage {
logWithDevice("browser.isConnected is " + this.browser.isConnected(), this.device); logWithDevice("browser.isConnected is " + this.browser.isConnected(), this.device);
} }
try { try {
logWithDevice("connecting to browser:" + this.port, this.device); // logWithDevice("connecting to browser:" + this.port, this.device);
while (this.browser === undefined || !this.browser.isConnected()) { // while (this.browser === undefined || !this.browser.isConnected()) {
this.browser = await puppeteer.connect({ // this.browser = await puppeteer.connect({
browserWSEndpoint: "ws://127.0.0.1:" + this.port + "/devtools/browser", // browserWSEndpoint: "ws://127.0.0.1:" + this.port + "/devtools/browser",
headless: false, defaultViewport: null // headless: false, defaultViewport: null
}) // })
// let pages = await this.browser.pages(); // // let pages = await this.browser.pages();
// this.page = pages[0]; // // this.page = pages[0];
this.page = await this.browser.newPage(); // this.page = await this.browser.newPage();
//
this.page.on("load", (loadedPage) => { // this.page.on("load", (loadedPage) => {
this.onPageLoad(loadedPage); // this.onPageLoad(loadedPage);
}) // })
//
this.page.on("response", (response) => { // this.page.on("response", (response) => {
this.onResponse(response) // this.onResponse(response)
}) // })
await delay(3 * 1000); // await delay(3 * 1000);
} // }
} catch (e) { } catch (e) {
logWithDevice("failed to connect to device", this.device) logWithDevice("failed to connect to device", this.device)
console.log(e) console.log(e)
@@ -222,26 +221,28 @@ class CommandorPage {
await this.checkResultWithOcr() await this.checkResultWithOcr()
this.isTerminated = true this.isTerminated = true
} }
if (this.page !== undefined) { // if (this.page !== undefined) {
try { // try {
logWithDevice("will open google", this.device) // logWithDevice("will open google", this.device)
if (!this.isTerminated) { // if (!this.isTerminated) {
const item = searchTexts[Math.floor(Math.random() * searchTexts.length)]; // const item = searchTexts[Math.floor(Math.random() * searchTexts.length)];
await this.page.goto("https://www.google.com/search?q=" + item + "&lr=lang_en", {timeout: 30 * 1000}); // await this.page.goto("https://www.google.com/search?q=" + item + "&lr=lang_en", {timeout: 30 * 1000});
} // }
// await this.page.goto(RDV_URL, {timeout: 90 * 1000}); // // await this.page.goto(RDV_URL, {timeout: 90 * 1000});
} catch (e) { // } catch (e) {
log(e) // log(e)
this.isTerminated = true // this.isTerminated = true
} // }
await this.acceptCookies(); // await this.acceptCookies();
await this.enableDisableAirPlanMode(); await this.enableDisableAirPlanMode();
await delay(10 * 1000); // await delay(10 * 1000);
// await this.checkResultWithOcr() await openUrlWithAdb(RDV_URL, this.device)
await this.clickOnlineAppointment(); await delay(5000)
} else { await this.checkResultWithOcr()
this.isTerminated = true; // await this.clickOnlineAppointment();
} // } else {
// this.isTerminated = true;
// }
let cancel let cancel
const intervalTask = setInterval(async () => { const intervalTask = setInterval(async () => {
@@ -913,6 +914,7 @@ class CommandorPage {
await this.connect_to_browser(checkResult) await this.connect_to_browser(checkResult)
break; break;
case OCRResult.FILL_FIELD: case OCRResult.FILL_FIELD:
logWithDevice("FILL_FIELD", this.device)
if (this.browser === undefined || !this.browser.isConnected()) { if (this.browser === undefined || !this.browser.isConnected()) {
logWithDevice("trying to connect to browser", this.device) logWithDevice("trying to connect to browser", this.device)
try { try {
@@ -951,27 +953,27 @@ class CommandorPage {
logWithDevice("this.browser.isConnected() is " + this.browser.isConnected(), this.device) logWithDevice("this.browser.isConnected() is " + this.browser.isConnected(), this.device)
try { try {
if (this.browser.isConnected()) { if (this.browser.isConnected()) {
logWithDevice("get pages", this.device) // logWithDevice("get pages", this.device)
let pages = await this.browser.pages(); // let pages = await this.browser.pages();
logWithDevice("get current page", this.device) logWithDevice("will use old page", this.device)
try { // try {
pages.forEach((currentPage) => { // pages.forEach((currentPage) => {
if (currentPage.url() === RDV_URL) { // if (currentPage.url() === RDV_URL) {
this.page = currentPage; // this.page = currentPage;
} else { // } else {
// try { // // try {
// if (!currentPage.isClosed()) { // // if (!currentPage.isClosed()) {
// currentPage.close() // // currentPage.close()
// } // // }
// } catch (e) { // // } catch (e) {
// console.log(e) // // console.log(e)
// } // // }
} // }
}) // })
} catch (e) { // } catch (e) {
this.isTerminated = true // this.isTerminated = true
console.log(e) // console.log(e)
} // }
logWithDevice("this.page.bringToFront();", this.device) logWithDevice("this.page.bringToFront();", this.device)
await this.page.bringToFront(); await this.page.bringToFront();
// this.page = pages; // this.page = pages;
@@ -1018,7 +1020,7 @@ class CommandorPage {
await this.tapForDevice(this.device, 530, 970) await this.tapForDevice(this.device, 530, 970)
} else if (this.device.model() === "ONEPLUS A6000") { } else if (this.device.model() === "ONEPLUS A6000") {
await this.device.shell("input tap " + 530 + " " + 1064) await this.device.shell("input tap " + 530 + " " + 1064)
} else if (this.device.model() === "M2006C3LG") { } else if (this.device.model() === "M2006C3LG" || this.device.model() === "220233L2G") {
await this.tapForDevice(this.device, 350, 777) await this.tapForDevice(this.device, 350, 777)
} else if (this.device.model() === "KB2003" || this.device.model() === "DE2117") { } else if (this.device.model() === "KB2003" || this.device.model() === "DE2117") {
await this.tapForDevice(this.device, 500, 1200) await this.tapForDevice(this.device, 500, 1200)
@@ -1151,7 +1153,7 @@ class CommandorPage {
await this.device.shell("input tap " + 558 + " " + 1160) await this.device.shell("input tap " + 558 + " " + 1160)
} else if (model === "MI 5s") { } else if (model === "MI 5s") {
await this.tapForDevice(this.device, 530, 1000) await this.tapForDevice(this.device, 530, 1000)
} else if (model === "M2006C3LG") { } else if (model === "M2006C3LG" || model === "220233L2G") {
await this.tapForDevice(this.device, 360, 777) await this.tapForDevice(this.device, 360, 777)
} else if (model === "ONEPLUS A6000") { } else if (model === "ONEPLUS A6000") {
await this.device.shell("input tap " + 530 + " " + 1106) await this.device.shell("input tap " + 530 + " " + 1106)
@@ -1279,6 +1281,8 @@ class CommandorPage {
await this.tapForDevice(this.device, 411, 2020) await this.tapForDevice(this.device, 411, 2020)
} else if (this.browserPackageName.includes("brave") && this.device.model() === "M2006C3LG") {//redmi 9a } else if (this.browserPackageName.includes("brave") && this.device.model() === "M2006C3LG") {//redmi 9a
await this.tapForDevice(this.device, 411, 1300) await this.tapForDevice(this.device, 411, 1300)
} else if (this.browserPackageName.includes("brave") && this.device.model() === "220233L2G") {//redmi 9a
await this.tapForDevice(this.device, 411, 1300)
} else { } else {
await this.tapForDevice(this.device, 411, 2100) await this.tapForDevice(this.device, 411, 2100)
} }
+1 -2
View File
@@ -2,7 +2,7 @@ const {v4: uuidv4} = require("uuid");
const OCRResult = require("../models/OCRResult"); const OCRResult = require("../models/OCRResult");
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");
function delay(delayInMs) { function delay(delayInMs) {
return new Promise(resolve => { return new Promise(resolve => {
@@ -96,7 +96,6 @@ class OCRChecker {
return OCRResult.CHOOSE_POSITION return OCRResult.CHOOSE_POSITION
} else if (result.includes(BRAVE_VPN_SKIP)) { } else if (result.includes(BRAVE_VPN_SKIP)) {
await this.deleteFile(fileName) await this.deleteFile(fileName)
await this.deleteFile(screenShot)
return OCRResult.BRAVE_VPN_SKIP return OCRResult.BRAVE_VPN_SKIP
} 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)