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> { export default async function solve({ url }: SolverOptions): Promise<string> {
try { try {
const token = await solveCaptcha(url) return await solveCaptcha(url)
return token
} catch (e) { } catch (e) {
console.error(e) console.error(e)
return null return null

View File

@ -1,6 +1,6 @@
let requests = 0 let requests = 0
const LOG_HTML: boolean = Boolean(process.env.LOG_HTML) || false const LOG_HTML: boolean = process.env.LOG_HTML == 'true';
export default { export default {
incRequests: () => { requests++ }, incRequests: () => { requests++ },
@ -9,10 +9,10 @@ export default {
this.debug(html) this.debug(html)
}, },
...require('console-log-level')( ...require('console-log-level')(
{ {level: process.env.LOG_LEVEL || 'info',
level: process.env.LOG_LEVEL || 'info',
prefix(level: string) { 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 // ignore preset event listeners on the form
await page.evaluate(() => { 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 // it seems some sites obfuscate their challenge forms

View File

@ -180,18 +180,17 @@ async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browse
} }
if (headers) { 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) overrideResolvers.headers = request => Object.assign(request.headers(), headers)
} }
if (cookies) { if (cookies) {
log.debug(`Setting custom cookies: ${JSON.stringify(cookies, null, 2)}`,) log.debug(`Setting custom cookies: ${JSON.stringify(cookies)}`)
await page.setCookie(...cookies) await page.setCookie(...cookies)
} }
// if any keys have been set on the object // if any keys have been set on the object
if (Object.keys(overrideResolvers).length > 0) { if (Object.keys(overrideResolvers).length > 0) {
log.debug(overrideResolvers)
let callbackRunOnce = false let callbackRunOnce = false
const callback = (request: Request) => { const callback = (request: Request) => {
@ -208,8 +207,7 @@ async function setupPage(ctx: RequestContext, params: BaseRequestAPICall, browse
overrides[key] = overrideResolvers[key](request) overrides[key] = overrideResolvers[key](request)
}); });
log.debug(overrides) log.debug(`Overrides: ${JSON.stringify(overrides)}`)
request.continue(overrides) request.continue(overrides)
} }
@ -253,7 +251,9 @@ const browserRequest = async (ctx: RequestContext, params: BaseRequestAPICall) =
log.error(error) log.error(error)
return ctx.errorResponse("Unable to process browser request. Error: " + error) return ctx.errorResponse("Unable to process browser request. Error: " + error)
} finally { } 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) 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: maybe access env variable?
// TODO: sometimes browser instances are created and not connected to correctly. // TODO: sometimes browser instances are created and not connected to correctly.