Added Little Caprice Dreams scraped (WIP).

This commit is contained in:
DebaucheryLibrarian
2020-11-23 04:32:56 +01:00
parent eae9ee3cbe
commit 711a9441a6
40 changed files with 126 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ const Bottleneck = require('bottleneck');
const { JSDOM } = require('jsdom');
const logger = require('../logger')(__filename);
const virtualConsole = require('./virtual-console')(__filename);
const argv = require('../argv');
const pipeline = util.promisify(stream.pipeline);
@@ -105,7 +106,7 @@ async function request(method = 'get', url, body, requestOptions = {}, limiter)
if (Buffer.isBuffer(res.body)) {
const html = res.body.toString();
const window = new JSDOM(html).window;
const window = new JSDOM(html, { virtualConsole }).window;
return {
...res,

View File

@@ -3,8 +3,9 @@
const { JSDOM } = require('jsdom');
const moment = require('moment');
const http = require('./http');
const virtualConsole = require('./virtual-console')(__filename);
const { window: globalWindow } = new JSDOM('');
const { window: globalWindow } = new JSDOM('', { virtualConsole });
function trim(str) {
if (typeof str !== 'string') {
@@ -440,7 +441,7 @@ function initAll(context, selector, window) {
}
function extract(htmlValue, selector) {
const { window } = new JSDOM(htmlValue);
const { window } = new JSDOM(htmlValue, { virtualConsole });
if (selector) {
return init(window.document.querySelector(selector), window);
@@ -450,7 +451,7 @@ function extract(htmlValue, selector) {
}
function extractAll(htmlValue, selector) {
const { window } = new JSDOM(htmlValue);
const { window } = new JSDOM(htmlValue, { virtualConsole });
return initAll(window.document, selector, window);
}

View File

@@ -0,0 +1,18 @@
'use strict';
const { VirtualConsole } = require('jsdom');
const path = require('path');
const logger = require('../logger')(__filename);
function getVirtualConsole(filepath) {
const virtualConsole = new VirtualConsole();
const context = path.basename(filepath);
virtualConsole.on('error', message => logger.warn(`Error from JSDOM in ${context}: ${message}`));
virtualConsole.on('jsdomError', message => logger.warn(`Error from JSDOM in ${context}: ${message}`));
return virtualConsole;
}
module.exports = getVirtualConsole;