From 58a2fce2fe9952c5f787e6984587e33c66530e67 Mon Sep 17 00:00:00 2001 From: mrfry Date: Tue, 10 May 2022 12:01:59 +0200 Subject: [PATCH] information wrapper --- stable.user.js | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/stable.user.js b/stable.user.js index d07c281..5a2b6d8 100755 --- a/stable.user.js +++ b/stable.user.js @@ -116,7 +116,7 @@ // Devel vars // ------------------------------------------------------------------------------ // forcing pages for testing. unless you test, do not set these to true! - const isDevel = false + const isDevel = true const forcedMatchString = isDevel ? 'default' : null // only one of these should be true for testing const forceTestPage = isDevel && false @@ -390,6 +390,26 @@ } const questionNodeVariants = { + hasInformationText: { + criteria: () => { + const firstChild = + document.getElementsByTagName('form')[1].childNodes[0].childNodes[0] + if (!firstChild.className.includes('informationitem')) { + return false + } + const questionNodes = Array.from( + document.getElementsByTagName('form')[1].childNodes[0].childNodes + ) + return questionNodes.length > 0 + }, + getter: () => { + return Array.from( + document.getElementsByTagName('form')[1].childNodes[0].childNodes + ).filter((node) => { + return !node.className.includes('informationitem') + }) + }, + }, formFirst: { criteria: () => { const questionNodes = Array.from( @@ -434,6 +454,7 @@ `question nodes ${key} criteria was true, but result is an empty array!` ) } else { + log(`Using question node getter variant: ${key}`) return true } } @@ -720,6 +741,7 @@ `result nodes ${key} criteria was true, but result is an empty array!` ) } else { + log(`Using question node getter variant: ${key}`) return true } } @@ -774,12 +796,13 @@ if (getter.requirement(node)) { try { res = getter.getterFunction(node) + log(`[Question getter] Using ${key}`) return true } catch (e) { - log(`${key} failed`) + log(`[Question getter] ${key} failed`) } } else { - log(`${key} did not pass`) + log(`[Question getter] ${key} did not pass`) } }) @@ -803,6 +826,7 @@ log('Answer or question array is empty, skipping question') resolve({ success: false }) } + console.log({ node: node, questionPromises: questionPromises, answerPromises: answerPromises, possibleAnswers: possibleAnswers }) Promise.all([ Promise.all(questionPromises), @@ -825,12 +849,12 @@ resolve(result) }) .catch((err) => { - warn('Error in getQuizFromNode()') + warn('Error in getQuizFromNode() (creating question)') warn(err) resolve({ success: false }) }) } catch (e) { - warn('Error in getQuizFromNode()!') + warn('Error in getQuizFromNode() (creating promises)') warn(e) warn(node) }