Minor improvements in debug traces

This commit is contained in:
ngosang 2021-04-04 18:42:04 +02:00
parent 8aa7723f45
commit b4c99d8426
5 changed files with 13 additions and 14 deletions

View File

@ -12,8 +12,7 @@ import { SolverOptions } from '.'
export default async function solve({ url }: SolverOptions): Promise<string> {
try {
const token = await solveCaptcha(url)
return token
return await solveCaptcha(url)
} catch (e) {
console.error(e)
return null

View File

@ -1,6 +1,6 @@
let requests = 0
const LOG_HTML: boolean = Boolean(process.env.LOG_HTML) || false
const LOG_HTML: boolean = process.env.LOG_HTML == 'true';
export default {
incRequests: () => { requests++ },
@ -9,10 +9,10 @@ export default {
this.debug(html)
},
...require('console-log-level')(
{
level: process.env.LOG_LEVEL || 'info',
{level: process.env.LOG_LEVEL || 'info',
prefix(level: string) {
return `${new Date().toISOString()} ${level.toUpperCase()} REQ-${requests}`
const req = (requests > 0) ? ` REQ-${requests}` : '';
return `${new Date().toISOString()} ${level.toUpperCase()}${req}`
}
}
)

View File

@ -117,7 +117,7 @@ export default async function resolveChallenge(url: string, page: Page, response
// ignore preset event listeners on the form
await page.evaluate(() => {
window.addEventListener('submit', (e) => { event.stopPropagation() }, true)
window.addEventListener('submit', (e) => { e.stopPropagation() }, true)
})
// it seems some sites obfuscate their challenge forms

View File

@ -180,18 +180,17 @@ async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browse
}
if (headers) {
log.debug(`Adding custom headers: ${JSON.stringify(headers, null, 2)}`,)
log.debug(`Adding custom headers: ${JSON.stringify(headers)}`)
overrideResolvers.headers = request => Object.assign(request.headers(), headers)
}
if (cookies) {
log.debug(`Setting custom cookies: ${JSON.stringify(cookies, null, 2)}`,)
log.debug(`Setting custom cookies: ${JSON.stringify(cookies)}`)
await page.setCookie(...cookies)
}
// if any keys have been set on the object
if (Object.keys(overrideResolvers).length > 0) {
log.debug(overrideResolvers)
let callbackRunOnce = false
const callback = (request: Request) => {
@ -208,8 +207,7 @@ async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browse
overrides[key] = overrideResolvers[key](request)
});
log.debug(overrides)
log.debug(`Overrides: ${JSON.stringify(overrides)}`)
request.continue(overrides)
}
@ -253,7 +251,9 @@ const browserRequest = async (ctx: RequestContext, params: BaseRequestAPICall) =
log.error(error)
return ctx.errorResponse("Unable to process browser request. Error: " + error)
} finally {
if (oneTimeSession) { sessions.destroy(sessionId) }
if (oneTimeSession) {
await sessions.destroy(sessionId)
}
}
}

View File

@ -82,7 +82,7 @@ export default {
puppeteerOptions.executablePath = path.join(path.dirname(process.execPath), 'chrome', exe)
}
log.debug('Launching headless browser...')
log.debug('Launching browser...')
// TODO: maybe access env variable?
// TODO: sometimes browser instances are created and not connected to correctly.