From 983d221664f7a041b340c2628f7d757e7f0c5955 Mon Sep 17 00:00:00 2001 From: bingus_violet Date: Wed, 19 Jun 2024 19:40:05 -0500 Subject: [PATCH] Only highlight when nesscary --- pageUpdater.js | 79 +++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/pageUpdater.js b/pageUpdater.js index d7e0f37..18bc535 100644 --- a/pageUpdater.js +++ b/pageUpdater.js @@ -68,7 +68,7 @@ function pathReplacer(html) { return html } -function highlighter(json, full=true) { +function highlighter(json, full = true) { for (var i = 0; i < json.length; i++) { var element = json[i] if (element.type == "element") { @@ -81,12 +81,12 @@ function highlighter(json, full=true) { for (let index = 0; index < highTable.length; index++) { var term = highTable[index]; var termProps = highlightedWords[term] - + var reg = term if (termProps.caseInsensitive) { reg = new RegExp(`(${term})`, "gi") } - + element.content = element.content.replaceAll(`{${term}}`, "TEMPORARY_REPLACE") element.content = element.content.replaceAll(reg, "{TERM" + index + "}") element.content = element.content.replaceAll("TEMPORARY_REPLACE", `${term}`) @@ -98,46 +98,46 @@ function highlighter(json, full=true) { var termProps = highlightedWords[highTable[index]] while (element.content.includes(termKey)) { var termIndex = element.content.indexOf(termKey) - + var spanEnd = element.content.indexOf(" ", termIndex) - + if (spanEnd == -1) { spanEnd = element.content.length } - + var endContent = element.content.substring(termIndex + termKey.length, spanEnd) - + var spanStart = element.content.substring(0, termIndex).lastIndexOf(" ") + 1 var startContent = element.content.substring(spanStart - 1, termIndex) - + var style = termProps.style || "" var classes = termProps.classes || "" - + if (termProps.color) { style += `color: ${termProps.color};` } - + if (termProps.italicized) { style += "font-style: italic;" } - + if (termProps.bold) { classes += "bold" } - + if (style.length > 2) { style = `style="${style}"` } - + if (classes.length > 2) { classes = `class="${classes}"` } - + var replacement = `${startContent + highTable[index] + endContent}` - + element.content = element.content.substring(0, spanStart) + replacement + element.content.substring(spanEnd) } - } + } // element.content = element.content.replaceAll(termKey, replacement) } @@ -147,7 +147,7 @@ function highlighter(json, full=true) { return json } -function converter(html, dynamic=true) { +function converter(html, dynamic = true) { var startTime = Date.now() var config = JSON.parse(fs.readFileSync(path.join(__dirname, 'config/config.json'))) @@ -178,7 +178,7 @@ function converter(html, dynamic=true) { if (status.emoji) { if (status.emoji.id) { addedHTML += `` - } else { + } else { addedHTML += status.emoji.name + " " } } @@ -244,30 +244,35 @@ function converter(html, dynamic=true) { for (let index = 0; index < rpTable.length; index++) { const text = rpTable[index]; + if (dynamic) { + replacers[text] = himalaya.stringify(highlighter(himalaya.parse(replacers[text]))) + } html = html.replaceAll(`{${text}}`, replacers[text]) } - - if (html.includes("")) { - var bodyHTML = htmlMinifier.minify(html.substring(html.indexOf("") + 6, html.lastIndexOf(""))) - var parsedHTML = himalaya.parse(bodyHTML) - } else { - var parsedHTML = himalaya.parse(html) + + if (!dynamic) { + if (html.includes("")) { + var bodyHTML = htmlMinifier.minify(html.substring(html.indexOf("") + 6, html.lastIndexOf(""))) + var parsedHTML = himalaya.parse(bodyHTML) + } else { + var parsedHTML = himalaya.parse(html) + } + + parsedHTML = highlighter(parsedHTML) + + parsedHTML = himalaya.stringify(parsedHTML) + if (html.includes("")) { + parsedHTML = "" + parsedHTML + "" + html = html.substring(0, html.indexOf("")) + parsedHTML + html.substring(html.indexOf("") + 7) + } else { + html = parsedHTML + } } - // console.log(parsedHTML) - - parsedHTML = highlighter(parsedHTML, dynamic) - - parsedHTML = himalaya.stringify(parsedHTML) - if (html.includes("")) { - parsedHTML = "" + parsedHTML + "" - html = html.substring(0, html.indexOf("")) + parsedHTML + html.substring(html.indexOf("") + 7) - } else { - html = parsedHTML + if (dynamic) { + html = html.replaceAll("{LOAD_TIME}", (Date.now() - startTime).toString() + "ms") } - html = html.replaceAll("{LOAD_TIME}", (Date.now() - startTime).toString() + "ms") - return html } @@ -397,7 +402,7 @@ function socketeer() { for (var i = 0; i < lanyardData.activities.length; i++) { var activity = lanyardData.activities[i] if (activity.type == 4 && activity.emoji) { - + if (activity.emoji.id) { if (activity.emoji.animated) { var emoji = Buffer.from(await (await fetch(`https://cdn.discordapp.com/emojis/${activity.emoji.id}.gif?quality=lossless`)).arrayBuffer())