From 44f0bf94201692623a91c32adf3d571e807b431a Mon Sep 17 00:00:00 2001 From: buzz-lightsnack-2007 <73412182+buzz-lightsnack-2007@users.noreply.github.com> Date: Tue, 7 May 2024 11:50:53 +0800 Subject: [PATCH] attempt: fixed trash data being loaded anyway --- scripts/pages/results.js | 126 ++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 60 deletions(-) diff --git a/scripts/pages/results.js b/scripts/pages/results.js index c24eabd..3bdd702 100644 --- a/scripts/pages/results.js +++ b/scripts/pages/results.js @@ -35,13 +35,15 @@ class Page_Results extends Page { // Set the reference website when overriding or unset. if (override || !this[`ref`]) {this[`ref`] = await global.read([`last`])}; - // Get all the data. - let DATA = { - "data": await global.read([`sites`, this[`ref`]]) - } - - // Set the data. - this[`data`] = (DATA[`data`]) ? DATA[`data`] : (this[`data`] ? this[`data`] : {}); + if (this[`ref`]) { + // Get all the data. + let DATA = { + "data": await global.read([`sites`, this[`ref`]]) + } + + // Set the data. + this[`data`] = (DATA[`data`] && (typeof DATA[`data`]).includes(`obj`)) ? DATA[`data`] : (this[`data`] ? this[`data`] : {}); + } } async content() { @@ -78,59 +80,63 @@ class Page_Results extends Page { Populate the contents. */ async fill() { - (this.elements) - ? (Object.keys(this.elements)).forEach(async (SOURCE) => { - if (SOURCE.indexOf(`*`) < SOURCE.length - 1) { - let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE)); - - this.elements[SOURCE][(this.elements[SOURCE].nodeName.toLowerCase().includes(`input`) || this.elements[SOURCE].nodeName.toLowerCase().includes(`progress`)) ? `value` : `innerHTML`] = (DATA) - ? (((typeof DATA).includes(`obj`) && !Array.isArray(DATA)) - ? JSON.stringify(DATA) - : String(DATA)) - : null; - } else if (SOURCE.indexOf(`*`) >= SOURCE.length - 1) { - let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE.split(`,`).slice(0, -1))); - - (!Array.isArray(DATA) && (typeof DATA).includes(`obj`) && DATA != null) - - let ELEMENT_TYPES = { - "container": "section", - "content": "article", - "title": "p", - "body": "p" - }; - - (Object.keys(DATA)).forEach((ITEM) => { - let ELEMENTS = {}; - - // Create the elements. - (Object.keys(ELEMENT_TYPES)).forEach((TYPE) => { - ELEMENTS[TYPE] = document.createElement(ELEMENT_TYPES[TYPE]); - - (([`content`, `action`, `title`].includes(TYPE) || TYPE.includes(`container`)) && this.elements[SOURCE][`target element type`]) - ? ELEMENTS[TYPE].classList.add(this.elements[SOURCE][`target element type`].concat((!TYPE.includes(`container`)) - ? `-${TYPE}` - : ``)) - : false; - }); - - ELEMENTS[`title`].innerText = String(ITEM).trim(); - ELEMENTS[`title`].classList.add(`flow-text`); - ELEMENTS[`body`].innerText = String(DATA[ITEM]).trim(); - - // Inject the elements. - [`title`, `body`].forEach((CONTENT) => { - ELEMENTS[`content`].appendChild(ELEMENTS[CONTENT]); - }); - ELEMENTS[`container`].appendChild(ELEMENTS[`content`]); - this.elements[SOURCE].appendChild(ELEMENTS[`container`]); - }) - } - }) - : false; - - // Set the color. - (nested.dictionary.get(this[`data`][`analysis`], [`Rating`, `Trust`]) && document.querySelector(`summary`)) ? document.querySelector(`summary`).setAttribute(`result`, (nested.dictionary.get(this[`data`][`analysis`], [`Rating`, `Trust`]))) : false; + if (this.data) { + (this.elements) + ? (Object.keys(this.elements)).forEach(async (SOURCE) => { + if (SOURCE.indexOf(`*`) < SOURCE.length - 1) { + let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE)); + + this.elements[SOURCE][(this.elements[SOURCE].nodeName.toLowerCase().includes(`input`) || this.elements[SOURCE].nodeName.toLowerCase().includes(`progress`)) ? `value` : `innerHTML`] = (DATA) + ? (((typeof DATA).includes(`obj`) && !Array.isArray(DATA)) + ? JSON.stringify(DATA) + : String(DATA)) + : null; + } else if (SOURCE.indexOf(`*`) >= SOURCE.length - 1) { + let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE.split(`,`).slice(0, -1))); + + (!Array.isArray(DATA) && (typeof DATA).includes(`obj`) && DATA != null) + + let ELEMENT_TYPES = { + "container": "section", + "content": "article", + "title": "p", + "body": "p" + }; + + (DATA) + ? (Object.keys(DATA)).forEach((ITEM) => { + let ELEMENTS = {}; + + // Create the elements. + (Object.keys(ELEMENT_TYPES)).forEach((TYPE) => { + ELEMENTS[TYPE] = document.createElement(ELEMENT_TYPES[TYPE]); + + (([`content`, `action`, `title`].includes(TYPE) || TYPE.includes(`container`)) && this.elements[SOURCE][`target element type`]) + ? ELEMENTS[TYPE].classList.add(this.elements[SOURCE][`target element type`].concat((!TYPE.includes(`container`)) + ? `-${TYPE}` + : ``)) + : false; + }); + + ELEMENTS[`title`].innerText = String(ITEM).trim(); + ELEMENTS[`title`].classList.add(`flow-text`); + ELEMENTS[`body`].innerText = String(DATA[ITEM]).trim(); + + // Inject the elements. + [`title`, `body`].forEach((CONTENT) => { + ELEMENTS[`content`].appendChild(ELEMENTS[CONTENT]); + }); + ELEMENTS[`container`].appendChild(ELEMENTS[`content`]); + this.elements[SOURCE].appendChild(ELEMENTS[`container`]); + }) + : false + } + }) + : false; + + // Set the color. + (nested.dictionary.get(this[`data`][`analysis`], [`Rating`, `Trust`]) && document.querySelector(`summary`)) ? document.querySelector(`summary`).setAttribute(`result`, (nested.dictionary.get(this[`data`][`analysis`], [`Rating`, `Trust`]))) : false; + } }; }