start.js works

This commit is contained in:
Lei PAN
2023-05-18 12:10:08 +02:00
parent 465861a5ab
commit aa4f5a78e8
2 changed files with 50 additions and 43 deletions
+44 -43
View File
@@ -11,8 +11,8 @@ const {
const GeoCaptchaSolver = require("./GeoCaptchaSolver"); const GeoCaptchaSolver = require("./GeoCaptchaSolver");
const SlidingCaptchaSolver = require("./SlidingCaptchaSolver"); const SlidingCaptchaSolver = require("./SlidingCaptchaSolver");
const {de} = require("yarn/lib/cli"); const {de} = require("yarn/lib/cli");
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"
const ERROR_CAPTCHA_UNSOLVABLE = "ERROR_CAPTCHA_UNSOLVABLE"; const ERROR_CAPTCHA_UNSOLVABLE = "ERROR_CAPTCHA_UNSOLVABLE";
@@ -125,9 +125,10 @@ class CommandorPage {
log(e) log(e)
} }
try { try {
// await this.setUpCookies() // let element = await this.page.$(':nth-match(:text("rendezvousparis"), 1)')
await this.page.focus(':nth-match(:text("rendezvousparis"), 1)') await this.page.$eval(':nth-match(:text("rendezvousparis"), 1)', el => {
await this.page.click() el.click()
});
} catch (e) { } catch (e) {
log(e) log(e)
if (!this.page.url().includes(RDV_URL)) { if (!this.page.url().includes(RDV_URL)) {
@@ -371,8 +372,8 @@ class CommandorPage {
} }
async isBlocked() { async isBlocked() {
let iframeHandler = await this.page.frameLocator("body > iframe"); let iframeHandler = await this.page.$("body > iframe");
let captcha_container = await iframeHandler.locator(CAPTCHA_CONTAINER) let captcha_container = await iframeHandler.$(CAPTCHA_CONTAINER)
let html = await captcha_container.innerHTML() let html = await captcha_container.innerHTML()
console.log("audio_tag: " + html); console.log("audio_tag: " + html);
return html.includes("You have been blocked") || html.includes("Vous avez été bloqué") || html.includes("封锁") return html.includes("You have been blocked") || html.includes("Vous avez été bloqué") || html.includes("封锁")
@@ -445,37 +446,37 @@ class CommandorPage {
async saveCookies() { async saveCookies() {
log("saveCookies() called.") log("saveCookies() called.")
try { // try {
let cookies = await this.page.context().cookies(); // let cookies = await this.page.context().cookies();
let cookiesInJson = []; // let cookiesInJson = [];
cookies.forEach((cookie) => { // cookies.forEach((cookie) => {
cookiesInJson.push(JSON.stringify(cookie)) // cookiesInJson.push(JSON.stringify(cookie))
}) // })
await require("fs").writeFileSync(this.contact.mail + '.txt', cookiesInJson.join('\n')); // await require("fs").writeFileSync(this.contact.mail + '.txt', cookiesInJson.join('\n'));
} catch (e) { // } catch (e) {
console.log(e) // console.log(e)
} // }
} }
async setUpCookies() { async setUpCookies() {
// load cookies from file // load cookies from file
try { // try {
logWithDevice("will add cookies", this.device) // logWithDevice("will add cookies", this.device)
const fs = require('fs'); // const fs = require('fs');
// let cookiesFile = fs.readFileSync('vampuka_fisherleyba@aol.com.txt', 'utf8'); // // let cookiesFile = fs.readFileSync('vampuka_fisherleyba@aol.com.txt', 'utf8');
let cookiesFile = fs.readFileSync(this.contact.mail + '.txt', 'utf8'); // let cookiesFile = fs.readFileSync(this.contact.mail + '.txt', 'utf8');
let cookiesList = cookiesFile.split("\n") // let cookiesList = cookiesFile.split("\n")
let cookiesListToAdd = [] // let cookiesListToAdd = []
cookiesList.forEach((cookie) => { // cookiesList.forEach((cookie) => {
let cookieToAdd = JSON.parse(cookie) // let cookieToAdd = JSON.parse(cookie)
// if (cookieToAdd.name === "datadome") { // // if (cookieToAdd.name === "datadome") {
cookiesListToAdd.push(cookieToAdd) // cookiesListToAdd.push(cookieToAdd)
// } // // }
}) // })
await this.context.addCookies(cookiesListToAdd) // await this.context.addCookies(cookiesListToAdd)
} catch (e) { // } catch (e) {
console.log(e) // console.log(e)
} // }
} }
async checkAudioBtn() { async checkAudioBtn() {
@@ -499,15 +500,15 @@ class CommandorPage {
} }
async resolveByAudio() { async resolveByAudio() {
let audioBtn = await this.page.frameLocator("iframe").locator("#captcha__audio__button"); // let audioBtn = await this.page.frameLocator("iframe").locator("#captcha__audio__button");
log("audioBtn found") // log("audioBtn found")
audioBtn.click() // audioBtn.click()
let captchaSolver = new GeoCaptchaSolver(this.page, this.device, this.isTerminated) // let captchaSolver = new GeoCaptchaSolver(this.page, this.device, this.isTerminated)
await captchaSolver.solve((isSuccessful) => { // await captchaSolver.solve((isSuccessful) => {
if (!isSuccessful) { // if (!isSuccessful) {
this.isTerminated = true // this.isTerminated = true
} // }
}) // })
} }
async onResponse(response) { async onResponse(response) {
+6
View File
@@ -0,0 +1,6 @@
const {startBookWithNumbers, scheduleBookWithNumbers} = require('./src/appointment')
startBookWithNumbers(0, 2, "random", "./163_contacts.xlsx", true, false).then((r) => {
console.log(r)
})