From f26c5660044772609cf100180996cbfa080822dc Mon Sep 17 00:00:00 2001 From: Martin Richtarsky Date: Mon, 16 Oct 2023 18:10:52 +0200 Subject: [PATCH] Make summarization work for text/plain content document.body is available and text can be extracted from it. Fixes #521 --- src/utils/get-core-content-text.mjs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/utils/get-core-content-text.mjs b/src/utils/get-core-content-text.mjs index 6f4ea3d..d529210 100644 --- a/src/utils/get-core-content-text.mjs +++ b/src/utils/get-core-content-text.mjs @@ -15,6 +15,9 @@ const adapters = { } function findLargestElement(e) { + if (!e) { + return null + } let maxArea = 0 let largestElement = null const limitedArea = 0.8 * getArea(e) @@ -50,14 +53,22 @@ export function getCoreContentText() { console.log(largestElement) console.log(secondLargestElement) - if (!largestElement) return + function getTextFrom(e) { + return e.innerText || e.textContent + } let ret - if (secondLargestElement && getArea(secondLargestElement) > 0.5 * getArea(largestElement)) { - ret = secondLargestElement.innerText || secondLargestElement.textContent + if (!largestElement) { + ret = getTextFrom(document.body) + console.log('use document.body') + } else if ( + secondLargestElement && + getArea(secondLargestElement) > 0.5 * getArea(largestElement) + ) { + ret = getTextFrom(secondLargestElement) console.log('use second') } else { - ret = largestElement.innerText || largestElement.textContent + ret = getTextFrom(largestElement) console.log('use first') } return ret.trim().replaceAll(' ', '').replaceAll('\n\n', '').replaceAll(',,', '')