From ebad259da53e48a5d8824046da228f182dea7a43 Mon Sep 17 00:00:00 2001 From: Andrea Vos Date: Wed, 25 Jan 2023 22:15:48 +0100 Subject: [PATCH] [profile] #290 generic rel=me (links table) - fixes --- server/analyseLinks.js | 6 ++++-- src/links.js | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/server/analyseLinks.js b/server/analyseLinks.js index abf492a4a..c169973cf 100644 --- a/server/analyseLinks.js +++ b/server/analyseLinks.js @@ -20,11 +20,13 @@ const timer = ms => new Promise( res => setTimeout(res, ms)); const results = await Promise.all(chunk.map(({url}) => analyser.analyse(url))); for (let result of results) { // random TTL (0-30 days) in order to spread out the legacy load + const expireAt = parseInt(new Date() / 1000) + parseInt(30*24*60*60*Math.random()); if (result.error) { - await db.get(SQL`UPDATE links SET expiresAt = ${parseInt(new Date() / 1000) + parseInt(30*24*60*60*Math.random())} WHERE url=${result.url}`); + console.error(result); + await db.get(SQL`UPDATE links SET expiresAt = ${expireAt} WHERE url=${result.url}`); } else { await db.get(SQL`UPDATE links - SET expiresAt = ${parseInt(new Date() / 1000) + parseInt(30*24*60*60*Math.random())}, + SET expiresAt = ${expireAt}, favicon = ${result.favicon}, relMe = ${JSON.stringify(result.relMe)}, nodeinfo = ${JSON.stringify(result.nodeinfo)} diff --git a/src/links.js b/src/links.js index 4c3d98f54..7c47b62fd 100644 --- a/src/links.js +++ b/src/links.js @@ -1,6 +1,7 @@ const AbortController = require('abort-controller'); const fetch = require('node-fetch'); -const jsdom = require('jsdom'); +const {JSDOM} = require('jsdom'); +const VirtualConsole = require('jsdom/lib/jsdom/virtual-console'); const SQL = require("sql-template-strings"); const normaliseUrl = (url) => { @@ -18,9 +19,9 @@ class LinkAnalyser { let $document; try { const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), 3000); + const timeout = setTimeout(() => controller.abort(), 10000); const htmlString = await (await fetch(url, {signal: controller.signal})).text(); - $document = new jsdom.JSDOM(htmlString, { virtualConsole: new jsdom.virtualConsole() }); + $document = new JSDOM(htmlString, { virtualConsole: new VirtualConsole() }); } catch (e) { return { url: url.toString(),